是在response.redirect()之后需要返回

时间:2014-12-01 16:21:42

标签: node.js

重定向后是否需要 return; 语句,如下面的示例代码所示:

if (!findUser(req.body.user)) {
    res.redirect("/gadda/login/?error=Unable to find user");
    return; // IS THIS NECESSARY
}

// If the above "if" statement is executed (i.e unable to find user) then there is no point in checking the password.
if (user_document.password === req.body.password) {
    res.redirect('http://' + req.headers.host + '/foo/bar');
    return; // IS THIS NECESSARY
}

1 个答案:

答案 0 :(得分:1)

不,没有必要,但做这样的事情很常见。

我相信那些返回语句只是在重定向发送后终止代码块的流程。您通常会这样做,因为您刚刚向客户端发送了重定向(即响应),因此您的工作已完成。您希望避免意外向客户端发送第二个响应(如果这样做,您将收到错误),因此结束流程通常可以确保这一点。但是,您可以在重定向后继续工作,但是您应该注意代码如何流动以避免双响应发送。