【发布时间】:2019-04-07 20:04:08
【问题描述】:
我是来自 Java 背景的 NodeJs 新手,我正在尝试了解约定 next() 调用的用法。
我浏览了以下帖子 -
1.javascript node.js next()
2.https://www.naeemrana.com/node-js/express-js-middleware-what-is-next/
3.When to use next() and return next() in Node.js
我可以使它们成为 next() 类似于回调或可能是在当前函数执行后要执行的下一个函数的引用,
也明白了建议使用return next();而不是next();来避免函数被重新执行。
以下是链接中的示例代码 -
app.get('/users/:id', function(req, res) {
var user_id = req.params.id;
if(user_id) {
// do something
} else {
next(); // here comes middleware.
}
});
我在这里不明白的是正在执行的函数没有第三个参数,
但它确实调用了 next() 函数,这里的想法是什么?
是否仅在路由逻辑上使用此约定?
next() 是回调吗?它是对要执行的下一个函数的引用吗?还是别的什么?
【问题讨论】:
-
您会惊讶于文章提供错误代码的普遍性。您提供的一篇文章忘记在函数参数中包含
next。你的推测是正确的,next是回调函数,后续代码的引用。
标签: javascript node.js