Reputation: 223
I am troubleshooting a Node.js script, and have stripped out almost all of the code and still am able to reproduce the following error:
{
[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'
}
The entire script is:
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");
I'm confident this is a simple mistake somewhere in the code, but have been unable to identify the problem?
Upvotes: 19
Views: 91986
Reputation: 24630
This question became popular, so I want to point you on a popular NodeJS library that make requesting much eaiser.
This is my choice because it's using same syntax as fetch
browsers api. So learing same syntax always better.
It's also uses the new promises syntax, so you can use async/await
var fetch=require('node-fetch')
var data=await fetch(url);
var text=await data.text()
Upvotes: 0
Reputation: 73014
You haven't provided a url in http.request
.
Try var req = http.request("someurlhere", function(res) {
... etc.
Moreover, if you're using http.request like that, I can't quite see the purpose of the following block of code at all (maybe remnants from the rest of the completed script?)
http.get("http://api.hostip.info/get_json.php", function(res) {
console.log("Received response: " + res.statusCode);
});
Upvotes: 22