繁体   English   中英

如何在Nodejs应用程序中共享配置变量

[英]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')不会导致任何性能下降。

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

您可能想要查看nconf ,它可以帮助您对应用程序配置采用一种“瀑布式”方法,这样您就可以非常透明地混合来自不同来源的配置。

您可以在我编写的这个项目中看到nconf正在运行, unbox ,这基本上是我在Node上编写的应用程序的样板。 您可以在此处查看配置的加载方式。

您可以使用grunt-pemcrypt之类的东西来检查安全的加密文件,并将加密密钥保存在安全的地方,从而提高安全性。

12factor还有一个很好的应用程序配置方法,你可能想要研究。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM