我对next()
如何在Node.js和Express中间件中工作感到困惑。
还有一些关于中间件工作的问题,for example here,但我正在寻找不同的答案。
困扰我的主要问题是,谁提供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()做了什么。
答案 0 :(得分:2)
Express应用程序本质上是一系列中间件调用。
中间件是一个可以访问请求对象(req)的函数 响应对象(res),以及下一个中间件 Express应用程序的请求 - 响应周期,通常用表示 一个名为next的变量。
如上所述,Expressjs提供下一个回调函数。接下来只是一种在流程中调用下一个中间件的方法。
有很多例子,请参阅Express Using middleware