快速中间件中的参考应用程序

时间:2017-07-30 01:19:47

标签: express

假设我们在express 4.0中有一些中间件:

app.use((req, res, next) => {
  // ... i want app here. except this 
  // method is imported from another file
  // so app isn't in scope.
});

有没有办法获得app对象?

我正在编写几个自定义中间件包,我一直发现自己需要引用app(当然是从另一个文件中引用)。我正在做这样的事情:

app.use(fabMiddleware(app));

这实际上是一个高阶函数:

const fabMiddleware = (app) => {
  return function(req, res, next) {
    // ... now i can use app
  }
}
modue.exports = fabMiddleware;

或许thisreqres是否可以引用app

1 个答案:

答案 0 :(得分:1)

是的,您可以访问req.app个实例,而无需明确传入。只需致电res.appdevtools::install_github("tidyverse/ggplot2")即可访问它。

https://expressjs.com/en/4x/api.html#req.app

https://expressjs.com/en/4x/api.html#res.app