3
respostas

Conexão recusada

events.js:183 throw er; // Unhandled 'error' event ^

Error: connect ECONNREFUSED 127.0.0.1:3002 at Object._errnoException (util.js:1022:11) at _exceptionWithHostPort (util.js:1044:20) at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1198:14)

A porta não está sendo utilizada e o firewall foi desativado.

var http = require('http');

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

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

3 respostas

Oi Geovane, mas a aplicação que trata a requisição está funcionando na porta 3002?

Tentei com as duas rodando na mesma porta e tentei com o app rodando na 3000 e o cliente-android na 3002, nenhuma das duas opções foram.

Arquivo cliente-android

var http = require('http');

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


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

arquivo produtos

module.exports = function (app    ) {
     app.get('/produtos', function (req, res) {        
        var connection = app.infra.connectionFactore();
        var produtosDAO = new app.infra.ProdutosDAO(connection);
        produtosDAO.lista(function(err, results) {
            res.format({
                html: function (){
                     res.render('produtos/lista', {lista:results});
                    },
                    json: function({
                        res.json(results);
                    });
            });

        });
        connection.end();
    });
     app.get('/produtos/json', function (req, res) {        
        var connection = app.infra.connectionFactore();
        var produtosDAO = new app.infra.ProdutosDAO(connection);
        produtosDAO.lista(function(err, results) {
            res.json(results);
        });
        connection.end();
    });

    app.post('/produtos', function (req, res){
        var produto = req.body;
        var connection = app.infra.connectionFactore();
        var produtosDAO = new app.infra.ProdutosDAO(connection);
        produtosDAO.salva(produto, function(err, results){
            res.redirect('/produtos');
        }); 
        connection.end();
    });
    app.get('/produtos/form', function (req, res){
    res.render('produtos/form');    
    });

// fora da aula
// usando vanillão
    app.post('/produtos/delete', function (req, res){
        var id = req.body.id;
        var connection = app.infra.connectionFactore();
        var produtosDAO = new app.infra.ProdutosDAO(connection);
        produtosDAO.remove(id, function (err, results){
            res.redirect('/produtos?del=true');
        });
    });

}

Opa Geovane, mas o cliente android precisa realizar a requisição para a mesma porta da webapp. Veja, o cliente android é um cliente http, o webapp node tem um servidor http. Os dois se comunicam pela mesma porta, um faz a requisição (cliente) e o outro responde (servidor).

O cliente android tá tomando o lugar do seu navegador no caso. Pegou a ideia? Sabe o que fazer?