私はReactでノード・アプリケーションを作成しています。バックエンド・コール用にnode-postgresとsuperagentを使用しています。 私はGETリクエストを作成し、それが返すJSONを使って生徒の表を埋めるとしましょう。私のAPIは、次のようになります。ページのロードでアプリでGETリクエストを行うとECONNREFUSEDが返されますが、APIがJSONを正常に返します
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);
});
});
});
、これは学生の配列を設定するために店から呼び出されます。何かが間違ってここに起こっているように思える:
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エラーが表示されます。なぜ私はHTTPポート上のエラーを取得しています
Error: connect ECONNREFUSED 127.0.0.1:80]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 80,
response: undefined
わかりません。これはnode-postgres、superagent、およびReactを使用して初めてのことです。
編集:私はPOSTリクエストを行い、アイテムをデータベースにエラーなく挿入することができます。このエラーは、GET要求を試行しているときにのみ発生します。
あなたが開いていましたアップポート80?ホストとポートを指定しないと、ポートが3000になるように思われない限り、スーパーエージェントのデフォルトのlocalhost:80のように見えます。 – Quy
@Quyを達成する方法は分かりますか?私は、スーパーエージェントを使ってポートを設定するための文書や例を見つけることができません。私は '.set( 'port'、5432)'と '.set( 'port'、3000)'を試しましたが、これまでは運がありませんでした。提案していただきありがとうございます。 – johnprisco
'request.get( 'http:// localhost:3000/api/getStudents')' – Quy