0
I am having problems both to present the error message and to insert the information in the BD module - express-Validator
1 - Error in saving information:
Result { Formatter: [Function: Formatter], errors: [] }
2 - Does not display the validation error message in the browser only in the console.
// admin.js
const { check, validationResult } = require('express-validator')
module.exports = (app) => {
app.get('/formulario_inclusao_noticia', (req, res) => {
res.render('admin/form_add_noticia',{validacao:{},noticia:{}});
});
app.post('/noticias/salvar', [
check('titulo','Título é obrigatório').not().isEmpty(),
check('resumo','Resumo é obrigatório').not().isEmpty(),
check('resumo','Resumo tem que ter entre 10 a 100 caracteres').isLength({ min: 10, max: 100 }),
check('autor','Autor tem que ter entre 10 a 100 caracteres').isLength({ min: 10, max: 100 }),
check('autor','Autor é obrigatório').not().isEmpty(),
check('data_noticia','Data é obrigatório').not().isEmpty(),
check('noticia','Data é obrigatório').isEmpty()
], (req, res) => {
let noticia = req.body
const errors = validationResult(req);
console.log(errors);
if(errors){
res.render('admin/form_add_noticia', {validacao: errors, noticia: noticia});
return
}
console.log(validacao);
let conn = app.config.dbConnection();
let noticiasModel = new app.app.models.NoticiasDAO(conn)
noticiasModel.salvarNoticia(noticia, (error, result) => {
res.redirect('/noticias')
})
})
}
//form_add_noticia.ejs
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="utf-8"/>
<title>Formulário de cadastro de Notícia</title>
</head>
<body>
<h1>Adicionar notícia</h1>
<br />
<% if (validacao) { %>
<ul>
<% for(var i = 0; i < validacao.length; i++) { %>
<li>
<%= validacao[i].msg %>
<% console.log(validacao[i].msg) %>
</li>
<% } %>
</ul>
<% } %>
<form action="/noticias/salvar" method="post">
<label>Título</label>
<input type="text" id="titulo" name="titulo" value="noticia" placeholder="Título da Notícia" />
<br />
<label>Resumo</label>
<input type="text" id="resumo" name="resumo" placeholder="Resumo da Notícia" />
<br />
<label>Nome autor</label>
<input type="text" id="autor" name="autor" placeholder="Autor da Notícia" />
<br />
<label>Data dos Fatos</label>
<input type="date" id="data_noticia" name="data_noticia" placeholder="Data da Notícia" />
<br />
<label>Notícia</label>
<textarea id="noticia" name="noticias" rows="5" cols="30"></textarea>
<br />
<input type="submit" value="Enviar" />
</form>
</body>
</html>
What version of
express-validator
?– Sorack
Excuse my ignorance, but how do I see the express-Validator version? @Sorack
– Bruno Ferreira
In the
package.json
of your application you can check the dependency libraries and their respective versions– Sorack
@Sorack thanks for the explanation, follow the "version": "6.1.1"
– Bruno Ferreira