Я пишу приложение node с 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.
.set('port', 5432)
и.set('port', 3000)
, но пока безуспешно. Спасибо за предложение. - person johnprisco   schedule 10.12.2015request.get('http://localhost:3000/api/getStudents')
- person Quy   schedule 11.12.2015