如何推迟一定时间再res.redirect?

时间:2017-10-12 15:19:35

标签: express

基本上这是我想要实现的目标, 当获得'/ validation'页面时,它首先发出消息,然后在3秒后重定向到另一个网页。

router.get('/validation', function (req, res, next) {
 res.send('you will see home page after 3 seconds')
  setTimeout(function () {
    res.redirect('/');
  }, 3000);
});

这会出现错误:发送后无法设置标头。 我知道原因,res.send和res.redirect都发送头,它是重复的。但如何以不同的方式实现我的目标呢?

1 个答案:

答案 0 :(得分:1)

如果您发送了某些内容,则由于标题而无法发送其他内容。

如果您想稍后重定向3秒,您可以等待而不向用户发送信息。

如果您想向用户发送一些信息并显示“等待3秒”,那么您需要在客户端使用javascript进行此操作

setTimeout(function() {
  window.location = "http://www.google.com";
}, 3000)