node.js - Express js 设置在哪里?

标签 node.js express

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

相关文章:

node.js - 如何让 go to catch 语句出错

javascript - Promise.all 与嵌套的 Promise.all

node.js - 如何将数据作为整数而不是 NodeJS 中的字符串存储到 MongoDB 中?

javascript - 有没有办法在node-orm中以同步方式调用每个函数?

javascript - Babili 缩小但不转译

javascript - 从另一个目录启动时,我的 node.js 服务器不工作

javascript - iOS 设备和 Node.js 服务器之间带有 ack 的 Socket.io 无法正常工作

node.js - 如何在 Expressjs 中制作可重用的函数代码?

javascript - 卡住 req.flash 不是函数错误

node.js - 如果包含在 sequelize 中找不到任何关系数据,则设置属性的空值