Piszę aplikację węzła z React, przy użyciu węzła-Postgres i Superagent dla wywołań zaplecza. Załóżmy, że robię żądanie GET i przy użyciu JSON wraca do wypełnienia tabeli studentów. Moje API wygląda następująco:ECONNREFUSED podczas wysyłania żądania GET w aplikacji, ale API zwraca JSON pomyślnie
import pg from 'pg';
import Router from 'express';
let router = new Router();
let conString = "postgres://user:[email protected]/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);
});
});
});
Podczas ładowania strony wywoływane jest ze sklepu w celu ustawienia tablicy uczniów. Wydaje się, że coś jest nie tak tutaj:
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;
}
});
}
Gdybym zwijają localhost:3000/api/getStudents
, otrzymuję odpowiedź JSON mam oczekiwać.
Jednakże gdy zgłoszę tego na stronie obciążenia, otrzymuję ECONNREFUSED błąd:
Error: connect ECONNREFUSED 127.0.0.1:80]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 80,
response: undefined
Nie wiem, dlaczego Dostaję błąd na porcie HTTP. To jest mój pierwszy raz używając node-postgres, superagenta i React, więc każda pomoc jest doceniana.
Edytuj: Nie pamiętam, że mogę wysyłać żądania POST i wstawiać elementy do bazy danych bez żadnych błędów. Ten błąd występuje tylko wtedy, gdy próbuję wysłać żądanie GET.
Czy otwarte do portu 80? Wygląda jak domyślne ustawienia super-agenta na localhost: 80, chyba że podasz host i port i wygląda na to, że chcesz mieć 3000. – Quy
Czy wiesz, jak to osiągnąć, @Quy? Nie mogę znaleźć żadnej dokumentacji ani przykładów ustawienia portu z superagentem. Próbowałem '.set ('port', 5432)' i '.set ('port', 3000)', ale bez powodzenia do tej pory. Dzieki za sugestie. – johnprisco
spróbuj 'request.get ('http: // localhost: 3000/api/getStudents')' – Quy