首页 > 为什么express route中的render函数被跳过不执行?

为什么express route中的render函数被跳过不执行?

我在用express实现用户的登陆功能,数据库用的MongoDB,并且引入了Mongoose,以下这段代码处理客户端的post请求,如果能在数据库中找到用户名,且验证密码正确的情况下,就让客户端就如app的主页面"kanbanboard",但是这个render函数并没有执行,客户端点登陆之后,这边terminal收到post请求而且两个console.log都执行了,为什么render没有执行?

account.route('/signin')
       .get(function (req, res) {
               res.render("signin.hbs", { status: "Sign In" });
       })
       .post(function(req, res, next){
               User.findOne({'username': req.body.username}, function (err, user) {
                   if (err) {
                       //Login Error
                       return handleError(err);
                   }

                   if (user.password !== req.body.password) {
                       console.log("Password Incorrect!");
                       return next(err);
                   }

                   console.log("Welcome, " + user.username);
               
                   res.render("kanbanboard.hbs", { username: user.username });
               });    
               console.log("Post received, heading to KanbanBoard...");
        });

如果Welcome, xxxconsole都执行了,那render方法应该也执行了,可能有什么错吧,你还有其他什么log可以看么?


你的表单是怎么提交的呢,如果使用ajax发送的异步请求的话,用res.render()貌似不会跳转,可以通过服务端返回redirectUrl然后在前端来进行location.href = redirectUrl来进行跳转。

【热门文章】
【热门文章】