Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Falha na inserção

Nas aulas apesar de não haver o atributo lista, o livro ainda é inserido. Mas no meu caso o seguinte erro é mostrado e nada é inserido.

lista is not defined
   at eval (eval at <anonymous> (/home/lucasponte/casadocodigo/node_modules/ejs/lib/ejs.js:495:12), <anonymous>:11:24)
   at returnedFn (/home/lucasponte/casadocodigo/node_modules/ejs/lib/ejs.js:524:17)
   at View.exports.renderFile [as engine] (/home/lucasponte/casadocodigo/node_modules/ejs/lib/ejs.js:378:31)
   at View.render (/home/lucasponte/casadocodigo/node_modules/express/lib/view.js:126:8)
   at tryRender (/home/lucasponte/casadocodigo/node_modules/express/lib/application.js:639:10)
   at EventEmitter.render (/home/lucasponte/casadocodigo/node_modules/express/lib/application.js:591:3)
   at ServerResponse.render (/home/lucasponte/casadocodigo/node_modules/express/lib/response.js:960:7)
   at Query._callback (/home/lucasponte/casadocodigo/app/routes/produtos.js:29:21)
   at Query.Sequence.end (/home/lucasponte/casadocodigo/node_modules/mysql/lib/protocol/sequences/Sequence.js:85:24)
   at Query.ErrorPacket (/home/lucasponte/casadocodigo/node_modules/mysql/lib/protocol/sequences/Query.js:94:8)

Alguém tem alguma idéia do porque? Abaixo segue os trechos de códigos criticos do problema.

Método post para inserir um livro -- produtos.js

app.post("/produtos/salva",function(req,res) {
        var livro = req.body;

        var connection = app.infra.connectionFactory();
        var produtosDAO = new app.infra.ProdutosDAO(connection);

        produtosDAO.salva(livro,function(erros,resultado){
                res.render("produtos/lista");
        });

        connection.end();
    });

Método do ProdutoDAO para inserir um livro -- ProdutosDAO.js

ProdutosDAO.prototype.salva = function(livro,callback) {
    this._connection.query('INSERT INTO livros SET ?', livro, callback);
}
1 resposta
solução!

Oi Lucas, realmente a variável lista não está sendo passada para o render.

res.render('produtos/lista', {lista:[]});

Testa assim :).

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software