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

标签 json node.js reactjs superagent node-postgres

我正在用 React 编写一个 Node 应用程序,使用 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;
       }
     });
 }

如果我 curl 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 请求时发生。

最佳答案

get 方法中试试这个(插入完整路径 url):

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

关于json - 在应用程序中发出 GET 请求时 ECONNREFUSED,但 API 成功返回 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34147169/

相关文章:

node.js - VScode Node 调试器抛出 Uncaught Error : write EPIPE

javascript - Express 服务器为我的静态文件提供服务,但不处理对我的 API 的请求。怎么了?

javascript - 如何在不仅使用 javascript 访问 DOM 的情况下动态更改样式?

javascript - 简单组件未渲染 : React js

javascript - 查找文本来比较真假

node.js - 如何对跨文件的 API 请求进行速率限制? [node.js]

javascript - 如何在 Javascript 中转义 JSON?

node.js - 文件上传适用于 postman ,但不适用于 Angular2

javascript - 类型错误 : null is not an object (evaluating '*' )

javascript - Ember.js JSON API 混淆