Module.exports vs普通json的configuration文件
我看到了多种在Node.js中创buildconfiguration文件的方法。 一个在js文件中使用module.exports,一个只使用普通的json对象。
// config1.js module.exports = { config_1: "value 1", config_2: "value 2" } // config2.json { config_1: "value 1", config_2: "value 2" }
在configuration文件中使用module.exports有没有什么好处? 有什么区别?
谢谢
javascript CommonJS模块
- 注释
- 条件语句
- 循环等来填充默认值
- 代码来改变基于NODE_ENV或类似的configuration
- 代码来查找SSL密钥,API凭证等的外部文件
- 更容易有后备和默认
JSON文件
- 易于parsing和更新与外部工具
- 与几乎所有的编程语言兼容
- 纯数据可以被加载而不被执行
- 易于漂亮的打印
- JSON可以作为基础开始,上面介绍的关于CommonJS模块的所有代码可以存在于config.js模块中,该模块读取config.json作为开始点
所以我总是从一个commonjs模块开始,为了方便起见,但是保持简单的逻辑。 如果你的config.js有错误,需要testing,那可能太复杂了。 吻。 如果我知道其他事情将要在我的configuration中捅一下,我会使用JSON文件。
谢谢@ jonathan-ong,看起来像config.js( 不JSON文件 )按预期工作,我可以把一些意见。
module.exports = { // Development Environment development: { database: { host: '127.0.0.1', login: 'dev', password: 'dev' } }, // Production Environment production: { database: { host: '127.0.0.1', login: 'prod', password: 'prod' } } };
js文件有@Peter Lyons提到的自己的特权。 但是,如果我不必访问外部资源的API密钥等我宁愿JSON的configuration文件。
简单的原因是我不必为了修改configuration文件而触摸我的代码 。 我可以简单地创build一个API来编辑这些json文件来添加,更新或删除任何configuration键值对。 甚至使用API为单独的环境添加全新的configuration文件。
并使用configuration模块来使用这些configuration