我是JavaScript / Nodejs的新手。如何在Nodejs应用程序之间共享我的配置。例如:我有config/config.coffee
path = require("path")
module.exports = {
development:
db: 'mongodb://localhost/hello'
root: rootPath = path.normalize(__dirname + '/..')
}
我在config.coffee
中添加了app.coffee
。
express = require("express")
# Load configurations
env = process.env.NODE_ENV || 'development'
config = require("./config/config")[env]
require('./config/boot')
app = express()
现在我想将config
变量包含到我的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')
)
抱歉英语不好:(
答案 0 :(得分:2)
我相信NodeJS会缓存您的require
,因此再次调用require('config')
不会导致性能下降。
答案 1 :(得分:2)
您可能需要查看nconf,它可以帮助您为应用程序配置保留一种“瀑布式”方法,从而可以非常透明地混合来自不同来源的配置。
你可以在我编写的这个项目中看到nconf正在运行,unbox,这基本上是我在Node上编写的应用程序的样板文件。您可以查看配置的加载方式here。
您可以使用grunt-pemcrypt之类的内容来检查安全的加密文件,并将加密密钥保存在安全的地方,从而提高安全性。
12factor也有一个很好的方法来处理您可能想要查看的应用程序配置。