如果在ExpressJS中间件中传递额外的变量会发生什么?

时间:2018-05-14 12:27:16

标签: node.js express

某些库声明了自己的自定义中间件函数,如此

function ApiCache() {

   ...
   return makeResponseCacheable(req, res, next, key, duration, strDuration, middlewareToggle)
}

传递额外的变量,而不是像标准中间件的签名function(req, res, next)只获得三个变量?

2 个答案:

答案 0 :(得分:0)

你可以通过任何不。在内部表达的参数中,它就像一个var arg函数,它检查所有传递的中间件

答案 1 :(得分:0)

您可以按照自己的方式传递参数。但我建议创建中间件功能并在中间件中使用它。

ES6 模式使其变得简单,

    let _listener: express.Express;
    const myMiddlewareClass: MyMiddlewareClass= new AuthorMyMiddlewareClassizationMiddleware(arg1, arg2, arg3);
    _listener.use(route, myMiddlewareClass.makeResponseCacheable.bind(myMiddlewareClass));

在这里,使用 bind 将使变量可以直接在类或函数外部访问。