玉模板中传递参数(上下文)的问题

时间:2019-03-25 22:09:02

标签: node.js pug

在我的发布请求中,我在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语句使用messages变量,但是如果我不使用if语句,它将很好地工作。

有必要使用if语句,因为我想在消息框中显示消息。

0 个答案:

没有答案