express路由到新页面后如何实现延迟几秒跳转到别的页面

express路由到新页面后如何实现延迟几秒跳转到别的页面()

场景: 用户登录界面中输入错误的用户信息, 路由到/login, 提示用户信息错误(期望是显示在页面上,非弹窗方式), N秒后跳转回用户登录界面.

相关代码

var pool = require('../pool.js');
var router = express.Router();
router.post('/login', function(req,res){//路由到登录界面
    console.log(req.body);
    var sql = 'SELECT * FROM xz_user WHERE uname=? AND upwd=?';//sql部分与问题无关,忽略
    pool.query(sql, [req.body.uname, req.body.upwd], function(err, result){
        if (err)
        {
            throw err;
        }
        if (result.length == 0)
        {            
            //res.send('用户不存在,请重新登录');
            setTimeout(function(){
                res.redirect('http://localhost:3000/user_login.html');
            }, 3000);
        }else 
            res.send('登录成功');
    });
});

预期结果: 1.用户输入用户名密码错误 => 2.路由到/login => 3.显示"用户不存在,请重新登录" => 4.延迟N秒 => 5.跳转回登录界面
实际结果: 不能实现第3步.
res.send();后的代码不执行,所以该怎样实现在路由到的页面提示用户不存在,然后再延迟跳转回登录界面呢?

阅读 4.1k
1 个回答

把延迟的逻辑放到前端。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题