如何在Nodejs应用程序中共享configurationvariables

我是JavaScript / Nodejs的新手。 如何在Nodejs应用程序中共享我的configuration。 例如:我有一个config/config.coffee

 path = require("path") module.exports = { development: db: 'mongodb://localhost/hello' root: rootPath = path.normalize(__dirname + '/..') } 

我在app.coffee包含了config.coffee

 express = require("express") # Load configurations env = process.env.NODE_ENV || 'development' config = require("./config/config")[env] require('./config/boot') app = express() 

现在我想包含configvariables到我的config/boot.coffee 。 我该怎么做? 我不想重新将config/config.coffee包含到config/boot.coffee 。 这是我的config/boot.coffee文件:

 env = process.env.NODE_ENV || 'development' config = require("./config")[env] fs = require("fs") mongo = require("mongoose") # Bootstrap db connections mongo.connect config.db # Bootstrap models models_path = config.root+"/app/models" fs.readdirSync(models_path).forEach( (file)-> require(models_path + '/' + file) if ~file.indexOf('.coffee') ) # Bootstrap services services_path = config.root+"/app/services" fs.readdirSync(services_path).forEach( (file)-> require(models_path + '/' + file) if ~file.indexOf('_service.coffee') ) 

对不起英文:(

您可能想要查看nconf ,这可以帮助您保持应用程序configuration的一种“瀑布式”方法,这使您可以非常透明地从不同来源混合您的configuration。

你可以在我写的这个项目中看到nconf的作用, unbox ,这基本上是我在Node上编写的应用程序使用的样板。 你可以看看如何在这里加载configuration。

您可以使用grunt-pemcrypt之类的方法来提高安全性,方法是检入安全的encryption文件,并将encryption密钥保存在安全的地方。

12factor也有一个很好的方法来应用程序configuration,你可能想看看。

我相信NodeJScaching你的require ,所以再次调用require('config')不会导致性能下降。

http://nodejs.org/api/globals.html#globals_require