node.js – Express:如何将变量传递给已挂载的中间件

前端之家收集整理的这篇文章主要介绍了node.js – Express:如何将变量传递给已挂载的中间件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我刚刚开始使用Expressjs,我想知道如何将变量传递给已挂载的中间件/子应用程序.在以下示例中,我希望将配置对象传递给my / 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
}

谢谢,

解决方法

我在这里看到两个选项:

>由于您的博客应用程序是一个快速应用程序,您可以使用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应用程序包装在另一个接受配置参数的函数中(很像静态中间件接受目录名称)并返回已配置的应用程序.如果你想要一个例子,请告诉我.

编辑:第二个选项的示例

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;
}
原文链接:https://www.f2er.com/nodejs/241177.html

猜你在找的Node.js相关文章