在 Express 文档中,有一个名为 settings
的部分:
http://expressjs.com/api.html#app-settings
但我无法弄清楚应该去哪里(到某个函数?作为使用中间件中的字典?或其他地方?)
附注我该如何解决这些问题 - 我需要查看源代码吗?
最佳答案
管理配置的方法有很多,但这是我写的一篇关于它的博客文章: 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);
这就是全部内容。
关于node.js - Express js 设置在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15050304/