4
respostas

Problema Error: connect ECONNREFUSED

Olá, estou tendo o seguinte problema abaixo:

C:\Users\user\Desktop\projetos\casadocodigo>node cliente-android.js
events.js:136
      throw er; // Unhandled 'error' event
      ^

Error: connect ECONNREFUSED 127.0.0.1:3000
    at Object._errnoException (util.js:999:13)
    at _exceptionWithHostPort (util.js:1020:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1207:14)

Porém não tenho a mínima ideia do que é. Segue abaixo o código:

var http = require('http');

var configuracoes = {
  hostname: 'localhost',
  port:3000,
  path:'/produtos',
  headers: {
    'Accept':'application/json'
  }
};

http.get(configuracoes,function(res){
    //console.log(res.statusCode);
    res.on('data',function(body){
        console.log('Corpo: ' + body);
    });
});
4 respostas

Oi VItor, tudo bem? Quando fazemos requisições, precisamos receber como parâmetro sempre requisição e resposta nesta ordem.

Quando usa-se o .event (ex: .on('data') ), é recomendado que use-se também o .on('error') para tratamento de erros. Antes conseguíamos fazer requisições sem o onError, mas agora parece que está sendo obrigatório usar. Tenta assim:

http.get(configuracoes,function(req, res){
    //console.log(res.statusCode);
    res.on('data',function(body){
        console.log('Corpo: ' + body);
    });
    req.on('error', function(erro){
        console.log(error);
    })
});

Olá Wanderson, boa tarde! Estou com o mesmo problema. Procedi conforme sua orientação, mas não consegui. Código:

var http = require('http');

var configuracoes = {
    hostname: 'localhost',
    port:3000,
    path: '/produtos'
};

http.get(configuracoes,function(req, res){
    console.log(res.statusCode);
    res.on('data',function(body){
        console.log('Corpo: ' + body);
    });
    res.error('error', function(error){
        console.log(error);
    });

});
Console:
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: connect ECONNREFUSED 127.0.0.1:3000
    at Object.exports._errnoException (util.js:1020:11)
    at exports._exceptionWithHostPort (util.js:1043:20)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1090:14)
[nodemon] app crashed - waiting for file changes before starting...

Vamos ver se o node tá reclamando por causa do End, pode ser isso. Deixa teu código assim:

http.get(configuracoes, function(res){
    console.log(res.statusCode);
    var body  = '';

    res.on('data',function(dados){
        body += dados;
    });

    res.end('end', function(){
        console.log(body);
    });

}).on('error', function(error){
    console.log(error.message);
});

Se isso não ajudar em nada, me disponibiliza teu projeto em um zip pra mim investigar isso de perto.

Victor, Boa Noite !

No vídeo executado em aula, o Alberto está usando 2 terminais, um terminal está sendo executado o servidor (app.js) e no outro terminal ele executa a solicitação do json pelo cliente-android.js.

Sobe o servidor (app.js) e tenta executar, isso deve funcionar...

Abraços