Express js 设置去哪里了?

问题描述 投票:0回答:3

在 Express 文档中,有一个名为

settings
的部分: http://expressjs.com/api.html#app-settings

但我不知道到底应该去哪里(到某个函数?作为使用中间件中的字典?或其他地方?)

附注我该如何解决这些问题 - 我需要查看源代码吗?

node.js express
3个回答
1
投票

管理配置的方法有很多,但这是我写的一篇关于它的博客文章: https://web.archive.org/web/20130506105513/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 文件,假设您的 NODE_ENV=test,这将加载 config.test.js 文件(如果未定义 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);

这就是全部内容。


0
投票

你必须使用

app.set
:

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

0
投票

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

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

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

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

$ express --help

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

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

© www.soinside.com 2019 - 2024. All rights reserved.