当前位置:  开发笔记 > 编程语言 > 正文

在应用程序中发出GET请求时ECONNREFUSED,但API成功返回JSON

如何解决《在应用程序中发出GET请求时ECONNREFUSED,但API成功返回JSON》经验,为你挑选了1个好方法。

我正在使用React编写节点应用程序,使用node-postgres和superagent进行后端调用.假设我正在发出GET请求并使用它返回的JSON来填充学生表.我的API看起来像这样:

import pg from 'pg';
import Router from 'express';
let router = new Router();
let conString = "postgres://user:pass@localhost/db_name";

router.get('/getStudents', function(req, res) {
  var results = [];

    pg.connect(conString, function(err, client, done) {
      if (err) {
       done();
       console.log(err);
       return res.status(500).json({success: false, data: err});
    }

    var query = client.query('SELECT first_name, last_name, email FROM students');

    query.on('row', function(row) {
      results.push(row);
    });

    query.on('end', function() {
      done();
      return res.json(results);
    });
  });
});

在页面加载时,从商店调用此项来设置学生数组.这似乎出现了问题:

var request = require('super agent');

function getStudents() {
   request
     .get('/api/getStudents')
     .set('Accept', 'application/json')
     .end(function(err, res) {
       if (err) {
         console.log("There's been an error: getting students.");
         console.log(err);
       } else {
         return res;
       }
     });
 }

如果我卷曲localhost:3000/api/getStudents,我会得到我期望的JSON响应.

但是,当我在页面加载时调用它时,我收到一个ECONNREFUSED错误:

Error: connect ECONNREFUSED 127.0.0.1:80]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 80,
response: undefined

不知道为什么我在HTTP端口上收到错误.这是我第一次使用node-postgres,superagent和React,所以任何帮助都表示赞赏.

编辑:忘记提及我能够发出POST请求并将项目插入数据库而没有任何错误.只有在我尝试GET请求时才会出现此错误.



1> Quy..:

get方法中尝试以下操作(插入完整路径网址):

request
  .get('http://localhost:3000/api/getStudents')
  .set('Accept', 'application/json')
  .end(function(err, res) {
    if (err) {
      console.log("There's been an error: getting students.");
      console.log(err);
    } else {
      return res;
    }
  });

查阅CORS文档,获取使用绝对URL的示例:

https://visionmedia.github.io/superagent/#cors


谢谢,这与我实施它的方式有关。毫不奇怪,我没有遵循React的最佳实践,因此我做了一些重构,并且在没有完整URL的情况下也可以正常工作。谢谢你的帮助!
推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有