用于Node js中的配置的JS vs JSON

Dee*_*arg 11 javascript node.js

我应该用什么配置?

像KrakenJS这样的模块通过JSON和博客https://blog.risingstack.com/node-js-best-practices-part-2/高度支持配置,说JS应该优于JSON.

你能告诉我他们的不同之处以及管理它们的最佳方法是什么?

Den*_*ret 17

你应该接受这两个.

JavaScript配置文件有许多优点:

  1. 当然是可编程的,它允许有趣的扩展和生成的部分
  2. 更轻松,更难以打字(更少报价,尾随逗号等)
  3. 让你有评论(JSON的一大局限,这就是他们需要的原因)
  4. 更多值类型(NaN例如,无穷小,正则表达式)

在这种情况下,JS文件导出一个普通的JS对象,类似于解析的JSON文件的结果.

JSON更受社会接受,因为JS通常不被认为是一种配置格式.让人们使用JSON将阻止"JS是为了逻辑"的无聊辩论,如果人们对它感到满意就没有问题.

接受这两种格式:

以下是如何读取JS/JSON配置:

try {
    config = require('./config.js');
} catch(err) {
    if (err.code==='MODULE_NOT_FOUND') {
        config = require('./config.json');
    } else {
        console.error('config.js loading failed');
        throw err;
    }
}
Run Code Online (Sandbox Code Playgroud)

在任何情况下,JSON配置文件都可以通过前缀来转换为JS

module.exports =
Run Code Online (Sandbox Code Playgroud)

所以没人用这种格式锁定.

  • 唯一的问题是如果你开始在json中保存你的配置,那么你可以遵循一个开源项目的标准,并最终遵循一个设置的格式.否则使用`config.js`文件,每个程序员都会自行调整.你最终不得不找出某人的config.js文件. (2认同)
  • @DenysSéguret这不是一个多么相似的问题,但它可能变得多么不同.同样,我不是在谈论具体的例子,而是从理论的角度来看.数据是数据(JSON),逻辑是逻辑(JS).当然,你可以将它们混合在一起,但就是这样,你正在混合它们. (2认同)
  • @DenysSéguret确切地说.添加控制结构无助于用户理解配置文件.没有控制结构=更容易编辑.评论可以在一个单独的文件中.所以我仍然没有看到JS存储配置信息的优势.做你说的话并不是什么大不了的事,我知道,我甚至有时会做.但如果问题是"什么是最好的",对我来说JSON最适合配置文件,没有讨论.其他一切都是解决方法. (2认同)