假设以下示例:
第一名:
projectController.getProjectById = function(req,res){
return (res.status(200).send("Hey"));
}
第二名:
projectController.getProjectById = function(req,res){
res.status(200).send("Hey");
}
仔细查看我的两个代码段,在第一个代码段中我写了return (res.status(200).send("Hey"));
,在第二个代码段中我写了res.status(200).send("Hey");
。
我的问题是,如果我们不将return(...)
写在res.send()
中,那么它将也将数据发送到客户端。那么将res.send()
包裹在return(...)
中的含义是什么。
我已经在互联网上进行搜索,但仍对答案不满意,任何人都可以对我的问题进行解释。
答案 0 :(得分:4)
return关键字从您的函数返回,从而结束其执行。这意味着之后的任何代码行都不会执行。
此外,一旦您使用了return关键字,代码执行者/编译器就无需关心下一行代码
答案 1 :(得分:1)
要添加到jitender的答案上,因为return会终止执行,因此return res.send()
可用于在有条件的响应条件下清理代码。
例如,假设您正在登录用户...
if (!user) {
res.status(400).send('User not found')
} else if (user.disabled) {
res.status(400).send('User is disabled')
} else {
// ...check password...
if (passwordMatch) {
res.send('Here is your token...')
} else {
res.status(400).send('Password did not match')
}
}
可以像这样清理...
if (!user) {
return res.status(400).send('User not found')
}
if (user.disabled) {
return res.status(400).send('User is disabled')
}
// ...check password...
if (passwordMatch) {
return res.send('Here is your token')
}
res.status(400).send('Password did not match')
最后,是否要使用return或if-else块是一个样式选择。