首页 > express框架 :写登录页面遇到的问题

express框架 :写登录页面遇到的问题

在写登录页面时遇到问题。直接上代码

下面这段是前台代码。

<script>
window.onload = function() {
$("#login").click(function(){
           var username = $("#username").val();
           var password = $("#password").val();
             var data = {"username":username,"password":password};
            $.ajax({ 
                url:'login',
                type:'post',
                data: data,
                success: function(data,status){ 
                    if(status == 'success'){ 
                        location.href = 'manage_menu';
                    }
                },
                error: function(data,status){ 
                    if(status == 'error'){ 
                        alert("用户名或密码错误!请重新输入。")
                        location.href = 'login';
                    }
                }
            });
})
}
</script>

下面是node响应的代码,像这样将用户名固定在这,没有问题,验证成功就会返回status(200),成功跳转。

  router.post('/login',function(req,res){
        var user={
            username:'admin',
            password:'admin'
        }
       if(req.body.username==user.username&&req.body.password==user.password){
            req.session.user = user;
            res.sendStatus(200);
            }else{
                req.session.error = "用户名或密码不正确";
                res.sendStatus( 404 );
                    }
});

但是我像下面这样写就会不会跳转,而且if那里走的是success那

router.post('/login',function(req,res){
  
      dao.User(req.body.username).then(function (result) {
      var user={
            username:result[0].username,
            password:result[0].password
        }
         if(req.body.username==user.username&&req.body.password==user.password){
          
            res.sendStatus(200);
            req.session.user = user;

            }
        else{
             res.sendStatus(404);
             req.session.error = "用户名或密码不正确";
              }
       });       
});

这个是数据库查询

 function User(username) {
        var result=db.msql.query('select * from User where username="'+username+'"');
        return result;
    }
    exports.User  = User;

请大家帮我看下是什么原因,谢谢大家。
补充:不跳转的原因发现是先返回了一个status=""的状态,还是异步的原因 ,不知道如何改,求大神帮忙,跪谢。。。


你可以这么试试:
比较完用户名和密码以后,用

return res.json({});

返回,前端不要判断ajax的status,自己设定一个status来用

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