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 }
谢谢,
我在这里看到两个选项:
-
由于您的
blog
应用程序是一个快速的应用程序,您可以使用app.set
和app.get
。 例如blog = require('./blog/index'); blog.set('var1', value1); blog.set('var2', value2); ... app.use('/blog', blog);
然后在
blog/index.js
使用app.get('var1')
来获取var1
的值。 -
您可以将
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; }