在执行函数之前发生渲染

时间:2021-05-12 08:51:04

标签: node.js mongodb express mongoose

页面在我检查存在函数之前被加载..如何处理它

   let messag="";
   console.log(req.query.id);
     idpassmodel.exists({name:req.query.id}, function(err,result){
            if(result===true){
                console.log("before");
                messag="id already exists";
                if(req.query.pass!==req.query.pass1){
                    messag="passwords dont match";
                }
            }
        
    });
    console.log("after");
    res.render('signup',{message:messag});
})


1 个答案:

答案 0 :(得分:0)

之所以会这样,是因为 exists 调用有效 async,所以我建议将 render 调用移动到回调中。

 let message="";
 console.log(req.query.id);
 idpassmodel.exists({name:req.query.id}, function(err,result){
        if (result===true) {
            console.log("before");
            message = "id already exists";
            if (req.query.pass!==req.query.pass1) {
                message = "passwords dont match";
            }
        }
        res.render('signup',{message:message});
});
console.log("after");

我还将您的变量 messag 重命名为 message

相关问题