Express中有没有方法可以重定向到res.json()之后的另一条路由?

时间:2019-01-27 10:24:18

标签: node.js express

我有一个表单,我希望在用户成功注册后将消息输出,然后将其重定向到另一条路由。

因此,我对/register的发帖请求中包含这段代码。

newUser.save()
  .then((user: any) => {
       res.json({ success })
       res.redirect('/')
   })
   .catch((error: string) => { throw error });

这会向我发送成功消息,我可以在我的React组件中输出该消息,但在重定向之后不会触发。

有没有办法做到这一点?还是在这种情况下重定向应该在React组件中?例如

1 个答案:

答案 0 :(得分:1)

无法完成。发送响应后,便无法更改。

此外,响应显然在客户端作为XMLHttpRequest处理。即使不需要JSON响应,它也不会重定向浏览器。

如果使用window.location或历史API或React路由器,则应在收到XHR响应后执行客户端重定向。