我刚刚开始使用 Expressjs,我想知道如何将变量传递给已安装的中间件/子应用程序。在下面的示例中,我希望将配置对象传递到我的/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
express 应用包装在另一个接受配置参数的函数中(很像static
中间件接受目录名)并返回配置的应用.如果您需要示例,请告诉我。
编辑:第二个选项的例子
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;
}
关于node.js - Express:如何将变量传递给挂载的中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14596467/