Mesmo depois de colocar a variavel no arquivo das rotas eu continuo com esse erro:
ReferenceError: C:\Users\Gisele\Documents\Alura\Node\casadocodigo\app\views\produtos\form.ejs:5 3|
4|5| <%if(errosValidacao){%> 6|
- 7| <%for(var i=0;i 8|
- <%=errosValidacao[i].param%> - <%=errosValidacao[i].msg%>
errosValidacao is not defined at eval (eval at (C:\Users\Gisele\Documents\Alura\Node\casadocodigo\node_modules\ejs\lib\ejs.js:491:12), :11:10) at returnedFn (C:\Users\Gisele\Documents\Alura\Node\casadocodigo\node_modules\ejs\lib\ejs.js:520:17) at View.exports.renderFile [as engine] (C:\Users\Gisele\Documents\Alura\Node\casadocodigo\node_modules\ejs\lib\ejs.js:374:31) at View.render (C:\Users\Gisele\Documents\Alura\Node\casadocodigo\node_modules\express\lib\view.js:126:8) at tryRender (C:\Users\Gisele\Documents\Alura\Node\casadocodigo\node_modules\express\lib\application.js:639:10) at EventEmitter.render (C:\Users\Gisele\Documents\Alura\Node\casadocodigo\node_modules\express\lib\application.js:591:3) at ServerResponse.render (C:\Users\Gisele\Documents\Alura\Node\casadocodigo\node_modules\express\lib\response.js:960:7) at C:\Users\Gisele\Documents\Alura\Node\casadocodigo\app\routes\produtos.js:24:11 at Layer.handle [as handle_request] (C:\Users\Gisele\Documents\Alura\Node\casadocodigo\node_modules\express\lib\router\layer.js:95:5) at next (C:\Users\Gisele\Documents\Alura\Node\casadocodigo\node_modules\express\lib\router\route.js:131:13) at Route.dispatch (C:\Users\Gisele\Documents\Alura\Node\casadocodigo\node_modules\express\lib\router\route.js:112:3) at Layer.handle [as handle_request] (C:\Users\Gisele\Documents\Alura\Node\casadocodigo\node_modules\express\lib\router\layer.js:95:5) at C:\Users\Gisele\Documents\Alura\Node\casadocodigo\node_modules\express\lib\router\index.js:277:22 at Function.process_params (C:\Users\Gisele\Documents\Alura\Node\casadocodigo\node_modules\express\lib\router\index.js:330:12) at next (C:\Users\Gisele\Documents\Alura\Node\casadocodigo\node_modules\express\lib\router\index.js:271:10) at C:\Users\Gisele\Documents\Alura\Node\casadocodigo\node_modules\express-validator\lib\express_validator.js:355:5
form.ejs
<html> <body> <form action="/produtos/salva" method="post"> <div class='erros'> <%if(errosValidacao){%> <ul> <%for(var i=0;i<errosValidacao.length;i++){%> <li><%=errosValidacao[i].param%> - <%=errosValidacao[i].msg%></li> <%}%> </ul> <%}%> </div> <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="coloque o preco"/> </div> <div> <label for="descricao">Descrição</label> <textarea cols="20" id="descricao" name="descricao" placeholder="coloque a descrição"></textarea> </div> <input type="submit" value="gravar" /> </form> </body> </html>
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; req.assert('titulo','Titulo é obrigatório').notEmpty() req.assert('preco','Formato inválido').isFloat() var erros = req.validationErrors(); if(erros){ res.render('produtos/form',{errosValidacao:erros}); return; } var connection = app.infra.connectionFactory(); var produtosDAO = new app.infra.ProdutosDAO(connection); produtosDAO.salva(produto, function(erros, resultados){ console.log(erros); res.redirect('/produtos'); }); }) }