в своем почтовом запросе я передаю некоторые переменные в шаблоне jade для отображения некоторых ошибок проверки формы, но после этого каждый раз, когда я отправляю запрос get на эту страницу, эти ошибки будут появляться снова!это для системы комментирования в моем блоге
router.get('/:id',function(req,res){
var id = req.params.id;
Post.findOne({_id:id},function(err,post){
if (err) throw err;
if (!post) res.sendStatus(404);
Comment.find({postId:id},function(err,comments){
res.render('post',{post:post,comments:comments});
});
});
});
router.post('/:id',function(req,res){
var id = req.params.id;
Post.findOne({_id:id},function(err,post){
if (err) throw err;
if (!post) res.sendStatus(404);
Comment.find({postId:id},function(err,comments){
email = req.body.email;
name=req.body.name;
commentBody=req.body.body;
//form validation
req.checkBody('name','title is empty').notEmpty();
req.checkBody('body','post body is empty').notEmpty();
req.checkBody('email','email is empty').notEmpty();
req.checkBody('email','please enter a valid email address').isEmail();
errors = req.validationErrors();
if (errors){
res.render('post', {errors:errors,post:post,comments:comments})
}
else{
newComment = new Comment({
name:name,
email:email,
body:commentBody,
postId:id,
date:Date.now()
});
newComment.save();
req.flash("success","Comment submitted successfully")
res.redirect('');
}
});
});
});
кажется, что она не очищает переменную "ошибки" после рендеринга.
и наоборот, когда я использую переменную "messages ()" для отображения моих флеш-сообщений, как только они как-то исчезнут!
например, если я использую приведенный ниже код в своем шаблоне Jade, он не покажет сообщения
if messages()
!{messages()}
выглядит как-то, если оператор использует переменную сообщений, но если я не используюоператор if будет работать нормально.
необходимо использовать оператор if, потому что я хочу показывать сообщения в окне сообщений.