谁在Express中间件中提供next()函数?
我很困惑next()
如何在Node.js和Express中间件中工作。
还有一些关于中间件工作的其他问题, 例如这里 ,但我正在寻找一个不同的答案。
困扰我的主要问题是谁在提供next()
函数?
例如,在我的标准生成express
应用程序,我给这个代码:
// catch 404 and forward to error handler app.use(function(req, res, next) { var err = new Error('Not Found'); err.status = 404; next(err); });
但是谁调用了这个函数,它提供的next()
的本质是什么? 我怎么知道next()
什么样的? 我不知道next()是做什么的。
Express应用程序本质上是一系列中间件调用。
中间件是在Express应用程序的请求 – 响应周期中访问请求对象(req),响应对象(res)和下一个中间件的函数,通常由名为next的variables表示。
如上所述,Expressjs提供了下一个callback函数。 接下来只是调用stream中下一个中间件的方法。
有关许多示例,请参阅Express的使用中间件