Javascript NodeJs中的next()是什么?
我是来自Java背景的NodeJs新手,我正在尝试理解约定next()call的用法。Javascript NodeJs中的next()是什么?,javascript,node.js,Javascript,Node.js,我是来自Java背景的NodeJs新手,我正在尝试理解约定next()call的用法。 我浏览了以下帖子- 1. 2. 3. 我所能理解的是next()类似于回调,或者是在当前函数执行之后执行的下一个函数的引用, 还了解建议使用returnnext()而不是next()以避免要重新执行的函数 以下是链接之一的示例代码- app.get('/users/:id', function(req, res) { var user_id = req.params.id; if(us
我浏览了以下帖子-
1.
2.
3.
我所能理解的是next()类似于回调,或者是在当前函数执行之后执行的下一个函数的引用,
还了解建议使用
returnnext()代码>而不是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()
不是nodejs的东西,而是express
中间件功能。调用next()
基本上移动到下一个中间件函数。是用于节点的web应用程序
你可以读更多
另外,请通读您应该提供哪些信息。Node.Js不知道下一步是什么。这是express
框架使用的模式
As express有一个中间件的概念,它可以在每个请求中调用
如果当前中间件函数没有结束请求-响应周期,它必须调用next()将控制权传递给下一个中间件函数。否则,请求将挂起
更多关于expressjs
和中间件的信息-next()
实际上是中间件函数的回调参数,按惯例称为“next”。当您使用下一个参数(作为中间件函数的参数)并调用next()
时,程序将移动到下一个中间件函数
但是express表示“注意上面对next()的调用。调用此函数将调用应用程序中的下一个中间件函数。next()函数不是Node.js或express API的一部分,而是传递给中间件函数的第三个参数。”
所以,我明白next()
不是Nodejs的事。但是,我认为,next()
不是express的东西
您可以阅读更多内容:您会惊讶于提供错误代码的文章是多么常见。您提供的其中一篇文章忘记在函数参数中包含next
。您的假设是正确的,接下来是一个回调函数,一个对后续代码的引用。
var app = express()
app.use(function (req, res, next) {
if(condition_to_return_from_here){
res.end(req.params.id)
}else{
console.log('Time:', Date.now())
next()
}
})