Tôi đang viết một ứng dụng bằng Node và Laravel. Tôi đang chạy một máy chủ cục bộ laravel nhỏ có khả năng giải quyết http://localhost:8000 . Tôi cũng đang chạy máy chủ Node trên localhost:3000. Sau đó thử gọi máy chủ đầu tiên từ máy chủ thứ hai. Đây là mã NodeJs:
var Restify = require('retify');
máy chủ var = Restify.createServer();
máy chủ.listen(3000, function() {
console.log('%s đang nghe ở %s', server.name, server.url);
});
Đây là nơi tôi thực hiện yêu cầu http:
var http = require('http');
module.exports = {
gọi: hàm (máy chủ, đường dẫn) {
var options = {
chủ nhà: chủ nhà,
đường dẫn: đường dẫn,
cổng: 8000,
phương thức: 'NHẬN'
};
gọi lại = chức năng (phản hồi) {
var str = '';
reply.on('data', function (chunk) {
str += đoạn;
});
reply.on('end', function () {
trả về str;
});
}
http.request(options, callback).end();
}
}
Đây là cuộc gọi thực tế tôi đang thực hiện:
httpCaller.call('http://localhost', '/fire');
Tôi nhận được phản hồi sau trên dòng lệnh:
Lỗi: getaddrinfo ENOTFOUND http://localhost http://localhost:8000
tại errnoException (dns.js:26:10)
tại GetAddrInfoReqWrap.onlookup [chưa hoàn thành] (dns.js:77:26)
Tôi đã thử xóa http:// và chỉ gọi localhost và nhận được kết quả như sau:
Lỗi: kết nối ECONNREFUSED 127.0.0.1:8000
tại Object.exports._errnoException (util.js:890:11)
tại xuất._ExceptionWithHostPort (util.js:913:20)
tại TCPConnectWrap.afterConnect [chưa hoàn thành] (net.js:1057:14)
我该怎么做?
Hãy thử sử dụnghttp.get
chức năng?
http.get('http://localhost:8000/fire', (res) => {
console.log(`Đã nhận được phản hồi: ${res.statusCode}`);
// tiêu thụ nội dung phản hồi
res.resume();
}).on('error', (e) => {
console.log(`Có lỗi: ${e.message}`);
});
Tôi là một lập trình viên xuất sắc, rất giỏi!