Solucionado (ver solução)
Solucionado
(ver solução)
10
respostas

Erro com arquivo cliente-android

Mesmo erro que foi solucionado, só que o servidor está online, eu consigo ver o phpMyadmin, com o comando nodemon app, roda a aplicação, mas não funciona o comando node cliente-android. js.

Em qual diretório esse arquivo de ser criado?

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

Error: connect ECONNREFUSED 127.0.0.1:3000 at Object.exports._errnoException (util.js:907:11) at exports._exceptionWithHostPort (util.js:930:20) at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1077:14)

produtos.js

module.exports = function(app) {
   var listaProdutos = function(req,res){
       var connection = app.infra.connectionFactory();
        var produtosBanco = new app.infra.ProdutosDAO(connection);

        produtosBanco.lista(function(erros, resultados){
             res.format({
                html: function(){
                    res.render("produtos/lista",{lista:resultados});
                },
                json: function(){
                    res.json(resultados);
                }
            });
        });

        connection.end();   
   };


    app.get("/produtos", listaProdutos);       

    app.get('/produtos/form', function(req,res){
        res.render('produtos/form');
    });
    app.post('/produtos/salva', function(req,res){

        var produto = req.body;
//        console.log(produto)

        var connection = app.infra.connectionFactory();
        var produtosDAO = new app.infra.ProdutosDAO(connection);
        produtosDAO.salva(produto, function(erros, resultados){
            res.redirect('/produtos');
        });
    })
}

cliente-android.js

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);
    });
});
10 respostas

Parece que seu servidor não está rodando na porta 3000. Lembre que pra rodar o cliente, o servidor tem que tá de pe.

Eu vi a resposta da outra dúvida, mas não é isso, porque se fosse quando eu digito node app não estaria rodando, certo?

Ele roda e aparece o dados corretamente, o que não funciona é esse arquivo novo que foi criado.

Em qual pasta esse arquivo deve ficar?

O arquivo do código cliente só precisa estar na raiz do seu projeto. O erro que vc colocou indica que não tem servidor rodando na porta 3000... Vc pode ter subido em outra porta... Insisto nisso, pq geralmente a solução mais simples é a solução real.

Entendi, os outros exercícios vão precisar disso ?

É estranho, porque estou utilizando o wamp e ele fica com o icone verde quando está online e aparece Wampserver online.

Inclusive quando eu clico em localhost no menu do Wamp ele abre a página localhost.

Como eu posso alterar a porta ou verificar se ela está sendo utilizada?

O engracado eh que wamp sobe um servidor apache, provavelmente na porta 80. Eu não tô entendendo o que tem a ver com o node.

Eu fiz um teste e mudei um pouco o código do http, eu tinha uma página na pasta www do wamp e quando eu tirei o path e a porta, o http, leu a estrutura do arquivo html que estava na pasta www.

Por ser wamp tem que estar dentro desse diretório ou deveria ler a porta, o arquivo e ler?

Porque o arquivo app.js funciona corretamente no localhost:3000/produtos.

Talvez eu tenha que desinstalar o wamp, o problema é que ao instalar o mysql, ele não separou as pastas, simplesmente atualizou o mysql do wamp.

Gisele, são duas coisas distintas... wamp é para vc rodar aplicações php, não tem a ver com aplicações javascript que rodam sobre o node. Bom, se tiver eu não conheço :(. Por isso que eu não estou entendendo a dúvida..

é mais simples... rode com node app para subir a aplicação e depois execute cliente-android.

solução!

ok. Só que quando eu utilizo o node app, ele trava a linha de comando porque o servidor está rodando, como eu executo o cliente.

Já resolvi, eu abri duas janelas de prompt.

Abre outro aba no terminal e executa.

Não tinha visto a última resposta, pelo vídeo eu não percebi se tinha uma ou duas abas rodando e como eu estou utilizando o mysql do wamp, achei que servia para a conexão.

Então os arquivos do node para funcionar, tem que estar rodando o app separado.