1
resposta

nesse codigo está dando um ERRO pra mim, que nao ta lendo "_local", com essa frase : "Cannot read property '_locals' of undefined"

module.exports = function(app){
    app.get('/produtos', function(req,res){        
        var connection = app.infra.connectionFactory();
        var produtosBanco = new app.infra.ProdutosDAO(connection);
        //consulta - para listar os produtos
        produtosBanco.lista(function(err, results){
            res.render('produtos/lista', {lista:results});
        });
        connection.end();    
    });

    app.get('/produtos/form', function(req,res){
        app.render('produtos/form');
    });
}
function ProdutosDAO(connection){
    this._connection = connection;
}

ProdutosDAO.prototype.lista = function(callback){
    this._connection.query('select * from produtos',callback);
}

module.exports = function(){
    return ProdutosDAO;
}
<html>
    <body>
        <form action="/produtos/salva" method="post">
            <div>
                <label for="titulo">Titulo</label>
                <input type="text" id="titulo" name="titulo" placeholder="coloque o titulo"/>
            </div>
            <div>
                <label for="preco">Preço</label>
                <input type="text" id="preco" name="preco" placeholder="150.25"/>
            </div>
            <div>f
                <label for="descricao">Descrição</label>
                <textarea cols="10" rows="10" id="descricao" name="descricao" placeholder="fale sobre o livro">
1 resposta

Francisco,

Na rota que trata o GET em /produtos/form e exibe o formulário, devemos chamar o método render() em res e não em app.

Então não é:

app.render('produtos/form');

e sim

res.render('produtos/form');