Após concluir o curso eu tive um peque grande problema.
A validação do expresse-validator é perfeita quando se passa apenas um objeto na requisição. Quando se passa um array é preciso varrer o array para validar os atributos de cada objeto. O problema está exatamente aqui.
Meu código ficou assim:
usuarios.map((u) => {
req.assert('u.email', 'E-mail undefined').notEmpty();
req.assert('u.senha', 'Senha undefined').notEmpty();
req.assert('u.nome', 'Nome é obrigatório').notEmpty();
var erros = req.validationErrors();
if (erros) {
res.status(500).send(erros);
return;
}
if (u.senha) u.senha = sha512(u.senha);
});
model.collection.insert(usuarios, {senha: 0})
.then((resultado) => {
res.status(200).json(resultado);
}, (error) => {
console.log(error);
res.status(500).json(error);
});
Quando faço a requisição ocorre a exceção:
(node:21252) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): ReferenceError: u is not defined
(node:21252) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
Perdi um dia pesquisando e tentando entender o problema sem sucesso! Alguém teve algum problema parecido?