Я использую «express -validator» для проверки своих форм, при вставке этой проверки обычно возникает проблема, связанная с возникновением ошибки. Невозможно прочитать свойство «_id» неопределенного.Невозможно прочитать свойство «_id» неопределенной ошибки при использовании экспресс-валидатора
код ниже: контроллер
Пользователи
var validacao = require('../validacoes/usuarios');
edit:function(req, res){
Usuario.findById(req.params.id, function(err, data){
if(err){
req.flash('erro', 'erro ao editar usuario' + err);
res.redirect('/usuarios');
}else{
res.render('usuarios/edit', {dados: data})
}
});
},
update:function(req, res){
if(validacao(req, res)){
Usuario.findById(req.params.id, function(err, data){
var model = data;
model.nome = req.body.nome;
model.site = req.body.site;
model.email= req.body.email;
model.save(function(err){
if(err){
req.flash('erro', 'erro ao editar usuario' + err);
res.render('usuarios/edit', {dados: model});
}else{
req.flash('info', 'registro atualizado com sucesso!');
res.redirect('/usuarios');
}
});
});
}else{
res.render('usuarios/edit', {user: req.body});
}
}
контроллер экспортировать внешний файл, где у меня есть правила проверки таковы:
код ниже:
var url = require('url');
module.exports = function(req, res){
var createUrl = url.parse(req.url).pathname == "/usuarios/create";
var updateUrl = !createUrl;
req.assert('nome', 'Informe o seu nome').notEmpty();
req.assert('email', 'Email inválido').isEmail();
req.assert('site', 'Site não tem a url válida').isURL();
if(createUrl){
req.assert('password', 'sua senha deve conter 6 ate 20 caracteres').len(6,20);
}
var validateErros = req.validationErrors() || [];
if(req.body.password != req.body.password_confirmar){
validateErros.push({msg: 'Senhas diferentes'});
}
if(validateErros.length > 0){
validateErros.forEach(function(e){
req.flash('erro', e.msg);
});
return false;
}else{
return true;
}
}
спасибо за внимание
Ta meio estranho isso ae ... o que o código de baixo tem a ver com o de cima? –
o de baixo são meu codigos de verificação as regras o de cima o controller –
Вы можете показать полное сообщение об ошибке? –