Node.js Ошибка: подключайте ECONNREFUSED при использовании http.request
Я пытаюсь устранить неисправность Node.js script и вырезал почти весь код и все еще могу воспроизвести следующую ошибку:
{
[Error: connect ECONNREFUSED]
stack: 'Error: connect ECONNREFUSED
at exports._errnoException (util.js:682:11)
at Object.afterConnect [as oncomplete] (net.js:947:19)',
code: 'ECONNREFUSED',
errno: 'ECONNREFUSED',
syscall: 'connect'
}
Весь script:
var http = require('http');
http.get("http://api.hostip.info/get_json.php", function(res) {
console.log("Received response: " + res.statusCode);
});
var req = http.request(function(res) {
console.log("Request began");
var output = '';
res.on('data', function (chunk) {
output += chunk;
});
res.on('end', function () {
console.log('Request complete:');
console.log(output);
});
});
req.on('error', function (err) {
console.log(err);
//console.log('error: ' + err.message);
});
req.end();
console.log("Script complete");
Я уверен, что это простая ошибка где-то в коде, но не удалось определить проблему?
Ответы
Ответ 1
Вы не указали URL-адрес в http.request
.
Попробуйте var req = http.request("someurlhere", function(res) {
... и т.д.
Кроме того, если вы используете http.request вроде этого, я не могу полностью увидеть цель следующего блока кода (возможно, остатки из оставшейся части завершенной script?)
http.get("http://api.hostip.info/get_json.php", function(res) {
console.log("Received response: " + res.statusCode);
});
Ответ 2
Этот вопрос стал популярным, поэтому я хочу указать вам на популярную библиотеку NodeJS, которая требует много запросов.
Это мой выбор, потому что он использует тот же синтаксис, что и в браузерах fetch
API. Так что использование одного и того же синтаксиса всегда лучше.
Он также использует новый синтаксис обещаний, поэтому вы можете использовать async/await
var fetch=require('node-fetch')
var data=await fetch(url);
var text=await data.text()
Узнайте больше: