jfcallo
jfcallo

Reputation: 223

Node.js Error: connect ECONNREFUSED when using http.request

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

Answers (2)

Aminadav Glickshtein
Aminadav Glickshtein

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()

Learn more:

Upvotes: 0

brandonscript
brandonscript

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

Related Questions