Lud*_*hen 6 design-patterns node.js express
我刚刚开始使用Expressjs,我想知道如何将变量传递给已挂载的中间件/子应用程序.在以下示例中,我希望将配置对象传递给my/blog/index
在app.js
var express = require('express');
var app = express();
//...
var config = {}
//...
app.use('/blog', require('./blog/index')
Run Code Online (Sandbox Code Playgroud)
在/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
}
Run Code Online (Sandbox Code Playgroud)
谢谢,
我在这里看到两个选项:
由于您的blog应用程序是快速应用程序,您可以使用app.set和app.get.例如
blog = require('./blog/index');
blog.set('var1', value1);
blog.set('var2', value2);
...
app.use('/blog', blog);
Run Code Online (Sandbox Code Playgroud)
并在blog/index.js使用app.get('var1')中获得价值var1.
您可以将blogExpress应用程序包装在另一个接受配置参数的函数中(很像static中间件接受目录名称)并返回已配置的应用程序.如果你想要一个例子,请告诉我.
编辑:第二个选项的示例
app.js看起来像这样:
var blog = require('./blog/index');
...
var config = {};
app.use('/blog', blog(config));
Run Code Online (Sandbox Code Playgroud)
和/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;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2002 次 |
| 最近记录: |