Express:如何将variables传递给安装的中间件

我刚开始玩Expressjs,我想知道如何将variables传递给安装的中间件/子应用程序。 在下面的例子中,我想把configuration对象传递给我的/ blog / index

在app.js中

var express = require('express'); var app = express(); //... var config = {} //... app.use('/blog', require('./blog/index') 

在/blog/index.js中

 var express = require('express'); app = module.exports = express(); app.use(express.static(... app.get('/', function(req, res, next) { //handle the req and res } 

谢谢,

我在这里看到两个选项:

  1. 由于您的blog应用程序是一个快速的应用程序,您可以使用app.setapp.get 。 例如

      blog = require('./blog/index'); blog.set('var1', value1); blog.set('var2', value2); ... app.use('/blog', blog); 

    然后在blog/index.js使用app.get('var1')来获取var1的值。

  2. 您可以将blog快递应用程序包装在另一个接受configuration参数的函数中(很像static中间件接受目录名称)并返回configuration的应用程序。 让我知道你是否想要一个例子。

编辑:第二个选项的例子

app.js看起来像这样:

 var blog = require('./blog/index'); ... var config = {}; app.use('/blog', blog(config)); 

和/blog/index.js一样:

 var express = require('express') module.exports = function(config) { var app = express(); // configure the app and do some other stuffs here // ... return app; }