Ric*_*ler 6 javascript express
问题很简单:在快速路由的请求处理程序中返回值是否会执行任何操作?
我见过人们返回请求处理程序的响应:
route.get('/something', (req, res) => {
// blah blah
if (/* something */) {
return res.send('something'); // return on the same line
}
return res.send('something else');
});
Run Code Online (Sandbox Code Playgroud)
我看到人们在发送回复后提前返回:
route.get('/something', (req, res) => {
if (/* something */) {
res.send('something');
return; // return after
}
res.send('something else');
return;
});
Run Code Online (Sandbox Code Playgroud)
有什么区别吗?返回值是否被使用?
在快速路由的请求处理程序中返回值有什么作用吗?
不,不是的。Express 不会关注您从路由处理程序返回的任何值。
当你看到类似这样的东西时:
return res.send(...);
Run Code Online (Sandbox Code Playgroud)
这在 Express 中实际上是一样的:
res.send(...);
return;
Run Code Online (Sandbox Code Playgroud)
Express 中发生的情况没有区别。在这种情况下,返回仅用作流量控制(退出函数),而不是因为有人想要返回一个值,所以这两者都具有完全相同的行为。
我个人更喜欢第二种形式,因为第一种形式可以被阅读代码的人解释为暗示返回值可能有意义(即使没有)。
| 归档时间: |
|
| 查看次数: |
1661 次 |
| 最近记录: |