[英]How to use an external configuration file in an with nodeJS CLI Application?
[英]How to share configuration variables in Nodejs application
我是JavaScript / Nodejs的新手。 如何在Nodejs应用程序之间共享我的配置。 例如:我有一个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()
现在我想在我的config/boot.coffee
包含config
变量。 我该怎么做? 我不想将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')
)
抱歉英文不好:(
我相信NodeJS会缓存你的require
,所以再次调用require('config')
不会导致任何性能下降。
您可能想要查看nconf ,它可以帮助您对应用程序配置采用一种“瀑布式”方法,这样您就可以非常透明地混合来自不同来源的配置。
您可以在我编写的这个项目中看到nconf正在运行, unbox ,这基本上是我在Node上编写的应用程序的样板。 您可以在此处查看配置的加载方式。
您可以使用grunt-pemcrypt之类的东西来检查安全的加密文件,并将加密密钥保存在安全的地方,从而提高安全性。
12factor还有一个很好的应用程序配置方法,你可能想要研究。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.