ECONNREFUSED, wenn Sie machen, GET-Anfrage in der app, aber-API gibt JSON-erfolgreich
Schreibe ich eine Knoten-app Reagieren, mit Knoten-postgres und superagent für die backend Aufrufe.
Sagen wir mal ich mache ein GET-Anforderung und Verwendung der JSON-es gibt, um füllen Sie eine Tabelle der Schüler. Mein API sieht wie folgt aus:
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);
});
});
});
Laden der Seite, das heißt aus dem store um einen Studenten-array. Es scheint, wie etwas läuft hier falsch:
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;
}
});
}
Wenn ich curl localhost:3000/api/getStudents
bekomme ich die JSON-Antwort, die ich erwarten.
Jedoch, wenn ich diese auf die Seite laden, bekomme ich einen ECONNREFUSED-Fehler:
Error: connect ECONNREFUSED 127.0.0.1:80]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 80,
response: undefined
Nicht sicher, warum ich bin immer zu einem Fehler bei der HTTP-port. Dies ist mein erstes mal mit Knoten-postgres, superagent, und Reagieren, so dass jede Hilfe wird sehr geschätzt.
Edit: Vergessen zu erwähnen, dass ich in der Lage bin, um POST-Anfragen und einfügen von Objekten in die Datenbank ohne Fehler. Dieser Fehler tritt nur auf, wenn ich versuche, eine GET-Anforderung.
Wissen Sie, wie Sie erreichen, dass @Quy? Ich finde keine Dokumentation oder Beispiele für die Einstellung der port mit superagent. Ich habe versucht
.set('port', 5432)
und .set('port', 3000)
, aber kein Glück so weit. Danke für die Anregung.versuchen
request.get('http://localhost:3000/api/getStudents')
InformationsquelleAutor johnprisco | 2015-12-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Probieren (einsetzen der vollständige Pfad url) in die
get
Methode:Schauen Sie sich die Dokumentation für CORS ein Beispiel für die Verwendung von absoluten urls:
https://visionmedia.github.io/superagent/#cors
InformationsquelleAutor Quy
Wird der Fehler auch auftreten, wenn Sie nicht haben, das Protokoll in der Anfrage-URL.
Statt
tun
InformationsquelleAutor Kim Kern