1

在 express 文档中,有一个部分称为settingshttp ://expressjs.com/api.html#app-settings

但我不知道应该去哪里(到某个功能?作为使用中间件中的字典?还是其他地方?)

PS我将如何解决这些问题-我需要查看源代码吗?

4

3 回答 3

1

管理配置的方法有很多,但这是我写的一篇博客文章:http: //www.chovy.com/node-js/managing-config-variables-inside-a-node-js-application/

基本前提是每个环境都有一个文件(即 config.development.js、config.production.js),其他所有环境都有一个名为 config.global.js 的文件,开发和生产文件只会覆盖您在全局中设置的任何内容根据该环境的需要。

这是基本的 config/index.js 文件,这将加载 config.test.js 文件,假设您的 NODE_ENV=test(如果 NODE_ENV 未定义,我们将默认为“开发”):

var env = process.env.NODE_ENV || 'development'
  , cfg = require('./config.'+env);

module.exports = cfg;

接下来是 config.test.js,它将包含 config.global.js,然后根据需要覆盖它的 json 对象:

config.test.js:

var config = require('./config.global');

config.env = 'test';
config.hostname = 'test.example';
config.mongo.db = 'example_test';

module.exports = config;

以及定义所有默认值的 config.global.js:

var config = module.exports = {};

config.env = 'development';
config.hostname = 'dev.example.com';

//mongo database
config.mongo = {};
config.mongo.uri = process.env.MONGO_URI || 'localhost';
config.mongo.db = 'example_dev';

现在我们将它们包装在一起并在我们的代码中使用它……例如在模型中,您可以在 ./models/user.js 中执行类似的操作:

var mongoose = require('mongoose')
, cfg = require('../config')
, db = mongoose.createConnection(cfg.mongo.uri, cfg.mongo.db);

这就是它的全部。

于 2013-02-24T09:51:31.257 回答
0

您通常将它们放入特定的配置块中:

app.configure(function () {
  // ...
});

您甚至可以使用命名块来进行不同的配置。

让 express 为您创建一个应用程序并查看它。为此,只需运行

$ express --help

在命令提示符下,看看它提供了什么。

PS:这回答了你的两个问题;-)

于 2013-02-24T09:24:44.320 回答
0

你必须使用app.set

app.set('name of setting', 'value');
于 2013-02-24T15:07:35.233 回答