Düğüm sonrası bildirimleri ve arka uç aramaları için süper ayırıcı kullanarak React ile bir düğüm uygulaması yazıyorum. Diyelim ki bir GET talebi yapıyorum ve JSON'u kullanarak bir öğrenci tablosunu doldurmak için geri dönelim. Benim API şunun gibi:Uygulamada GET isteği oluştururken ECONNREFUSED, ancak API, JSON'u başarıyla döndürüyor
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);
});
});
});
Yüklemede, bu bir öğrenci dizisini ayarlamak için depodan çağrılır. Ben localhost:3000/api/getStudents
kıvrılırsa
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;
}
});
}
, ben bekliyoruz JSON yanıt almak: şeylerin yanlış burada oluyor gibi görünüyor. Ben sayfa yüklemesinde bu çağırdığınızda
Ancak, ben bir ECONNREFUSED hata alıyorum:Error: connect ECONNREFUSED 127.0.0.1:80]
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect',
address: '127.0.0.1',
port: 80,
response: undefined
Ben HTTP bağlantı noktasında bir hata alıyorum neden emin değilim. Bu benim ilk defa düğüm postgres, superagent ve React kullanıyorum, böylece herhangi bir yardım takdir edilir.
Düzeltme: POST isteklerini yapabildiğimi ve herhangi bir hata olmadan veritabanına öğe ekleyebileceğimi bildirmekten bahsetmiştim. Bu hata, yalnızca bir GET isteğini denediğimde ortaya çıkar.
sen açtın: kullanarak mutlak URL'lerin bir örnek için
Kontrol dışarı CORS belgelerine 80 numaralı portu mu? Bir ana bilgisayar ve bağlantı noktası belirtmediğiniz ve bağlantı noktasının 3000 olmasını istemediğiniz sürece 80: localhost için süper aracı varsayılan değeri gibi görünüyor. – Quy
Bunu nasıl başardığını biliyor musunuz, @Quy? Herhangi bir belge ya da superagent ile portu ayarlama örnekleri bulamıyorum. .set ('port', 5432) 've 'set'i (' port ', 3000)' denedim, ama şimdiye kadar hiç şans yoktu. Önerin için teşekkürler. – johnprisco
'request.get'i deneyin (' http: // localhost: 3000/api/getStudents ') ' – Quy