为了账号安全,请及时绑定邮箱和手机立即绑定

如何存储Node.js部署设置/配置文件?

如何存储Node.js部署设置/配置文件?

蛊毒传说 2019-11-04 14:24:53
我一直在开发一些Node应用程序,并且一直在寻找一种存储与部署相关的设置的良好模式。在Django的世界(我来自哪里),常见的做法是有一个settings.py包含标准设置(时区等)文件,然后local_settings.py进行部署专用设置,即。与哪个数据库进行通信,什么Memcache套接字,管理员的电子邮件地址等等。我一直在寻找Node的类似模式。只需一个配置文件就可以了,因此它不必与中的所有其他文件一起使用app.js,但是我发现,有一种方法可以在不在源代码管理中的文件中具有服务器特定的配置,这一点很重要。同一应用程序很可能会以完全不同的设置部署在不同的服务器上,并且必须处理合并冲突,而这并不是我的乐趣所在。那么,为此是否有某种框架/工具,或者每个人都只是自己一起破解一些东西?
查看完整描述

3 回答

?
慕哥9229398

TA贡献1877条经验 获得超6个赞

从Node v0.5.x开始,您可以要求JSON文件(引用此答案)


config.json:


{

    "username" : "root",

    "password" : "foot"

}

app.js:


var config = require('./config.json');

log_in(config.username, config.password);


查看完整回答
反对 回复 2019-11-04
?
精慕HU

TA贡献1845条经验 获得超8个赞

后来,我找到了一个很好的用于管理配置的Node.js模块:nconf。


一个简单的例子:


var nconf = require('nconf');


// First consider commandline arguments and environment variables, respectively.

nconf.argv().env();


// Then load configuration from a designated file.

nconf.file({ file: 'config.json' });


// Provide default values for settings not provided above.

nconf.defaults({

    'http': {

        'port': 1337

    }

});


// Once this is in place, you can just use nconf.get to get your settings.

// So this would configure `myApp` to listen on port 1337 if the port

// has not been overridden by any of the three configuration inputs

// mentioned above.

myApp.listen(nconf.get('http:port'));

它还支持将设置存储在Redis中,编写配置文件,并具有相当可靠的API,并且作为Flatiron框架计划的一部分,还得到了备受推崇的Node.js商店之一Nodejitsu的支持。相当适合未来。


在Github上查看nconf。


查看完整回答
反对 回复 2019-11-04
  • 3 回答
  • 0 关注
  • 909 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信