3
respostas

variável não está definida

Bom dia!

Segue codigo apresentado na lição 03 Exibindo as mensagens de erro para o usuário da aula 05 Respeitando o accept.

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

Neste caso estamos redirecionando uma variável vazia para pasta produtos do arquivo form.ejs.

<% if(errosValidacao) { %>
  • <% for(var i=0; i < errosValidacao.length; i++) {%>
  • <%= errosValidacao[i].param %> - <%= errosValidacao[i].msg %>
  • <%}%>
<%}%>

Na minha aplicação; o formulário encontra se na mesma pagina que lista os produtos.

Duvida; Como carregar uma variável vazia na mesma página.

Obrigado.

3 respostas

Oii Cicero,

deixa eu entender melhor. Você quer saber como que isto está funcionando, sendo que dentro de errosValidacao tem apenas um objeto vazio como valor? Sem as propriedades param e msg definidas?

Oi, Vanessa. Tudo bem?

Sim, perfeito.

Mas, quando a pagína index e carregada apresenta erro: a variável errosValidacao 'is not defined'.

Neste caso a mesma deveria retornar como false?

Isto não ocorre porque estou com o formulario na mesma página.(não á redirecionamento).

No caso do exercicio proposto: funciona corretamente.

Oii Cicero, neste caso é só adicionar o objeto errosValidacao como segundo parâmetro do seu render. Vamos dizer que a sua rota seja / e você quer que tenha uma variável já definida para esta rota, porém sem nenhum valor atribuído, para pelo menos não ter um erro na view: Ficaria:

app.get('/', function(request,response){ 
        response.render('home/', {errosValidacao:{}})
    }
)

Veja se te ajuda a entender, se não, me envia já o código do seu arquivo de rotas.

abraços