谁在Express中间件中提供next()函数?

时间:2015-02-11 21:42:05

标签: javascript node.js express middleware

我对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()做了什么。

1 个答案:

答案 0 :(得分:2)

  

Express应用程序本质上是一系列中间件调用。

     

中间件是一个可以访问请求对象(req)的函数   响应对象(res),以及下一个中间件   Express应用程序的请求 - 响应周期,通常用表示   一个名为next的变量。

如上所述,Expressjs提供下一个回调函数。接下来只是一种在流程中调用下一个中间件的方法。

有很多例子,请参阅Express Using middleware