gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 22:32:28 25 4
gpt4 key购买 nike

我刚刚开始使用 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
}

谢谢,

最佳答案

我在这里看到两个选项:

  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 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com