Express js设置在哪里?

时间:2013-02-24 09:18:29

标签: node.js express

在快速文档中,有一个名为settings的部分: http://expressjs.com/api.html#app-settings

但我无法弄清楚到底应该去哪里(某些功能?作为使用中间件的字典?还是其他地方?)

P.S。 我将如何解决这些问题 - 我需要查看来源吗?

3 个答案:

答案 0 :(得分: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,我们将默认为'development'):

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);

这就是它的全部内容。

答案 1 :(得分:0)

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

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

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

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

$ express --help

在命令提示符下查看它提供的内容。

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

答案 2 :(得分:0)

您必须使用app.set

app.set('name of setting', 'value');