Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS vs JSON用于节点JS中的配置_Javascript_Node.js - Fatal编程技术网

Javascript JS vs JSON用于节点JS中的配置

Javascript JS vs JSON用于节点JS中的配置,javascript,node.js,Javascript,Node.js,我应该使用什么进行配置 KrakenJS等模块高度支持通过JSON进行配置,博客称JS应该优先于JSON 你能告诉我它们有什么不同吗?管理它们的最佳方法是什么?你应该接受两者 JavaScript配置文件有许多优点: 当然是可编程的,这允许有趣的扩展和生成的部件 更轻,更不难打字(更少的引号、尾随逗号等) 允许您有注释(JSON的一大限制) 更多值类型(NaN&无限,例如正则表达式) 在本例中,JS文件导出一个普通JS对象,类似于解析JSON文件的结果 JSON更为社会所接受,因为JS通常不被认

我应该使用什么进行配置

KrakenJS等模块高度支持通过JSON进行配置,博客称JS应该优先于JSON


你能告诉我它们有什么不同吗?管理它们的最佳方法是什么?

你应该接受两者

JavaScript配置文件有许多优点:

  • 当然是可编程的,这允许有趣的扩展和生成的部件
  • 更轻,更不难打字(更少的引号、尾随逗号等)
  • 允许您有注释(JSON的一大限制)
  • 更多值类型(
    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;
        }
    }
    
    在任何情况下,只要在JSON配置文件前面加上

    module.exports =
    

    因此,没有人会被这种格式所束缚。

    正如上面所写,你问题的观点部分站得太高了。你能重新表述一下吗(格式之间的差异和处理方式都在这个主题上)。我投票决定重新开始。太多的开发人员做出错误的选择是因为他们没有考虑差异(或者甚至没有考虑JS作为一种配置格式),所以我认为应该进行比较。请使用JS。1) 您可能需要导入一些包,这在JSON中是不可能的。还有一些不错的lib,比如github.com/indexzero/nconf。2) 另一个原因是,如果你想验证一个条件if/else,你也不能这样做。举个简单的例子,如果domain==localhost或production@Trying2Learn,这是正确的。甚至我更喜欢JS conf。但是通过查看基于JSON配置的kraken模块,我想知道使用JSON有什么好处。
    这个JSON文件包含在运行时加载的键值对。这样做的好处是,您的所有应用程序配置都位于一个众所周知的地方;你可以不用碰一行代码就把它换掉。这个配置文件也是您可以定义中间件并指定其加载顺序的地方。一种常见的情况是,开发环境的参数与生产环境略有不同。Kraken允许您使用备用值定义第二个文件config/development.json,并使用NODE_ENV
    source进行控制:注意,是谁否决了它。唯一的问题是,如果您开始用json保存配置,那么您可以遵循开源项目中的标准,并最终遵循设置的格式。否则,对于
    config.js
    文件,每个程序员都有自己的想法。最后你必须弄清楚某个人的config.js文件。@Sumobob在js中的配置是指导出普通对象的配置(类似于JSON中的配置)。@DenysSéguret问题不在于它有多相似,而在于它可能变得有多不同。同样,我不是在谈论具体的例子,而是从理论的角度。数据就是数据(JSON),逻辑就是逻辑(JS)。当然,你可以混合它们,但就是这样,你正在混合它们。@DenysSéguret。添加控件结构无助于用户理解配置文件。无控制结构=更易于编辑。注释可以在单独的文件中。所以我仍然没有看到JS存储配置信息的优势。照你说的做没什么大不了的,我知道,我有时甚至会这么做。但是如果问题是“什么是最好的”,对我来说JSON最适合配置文件,没有讨论。其他一切都是解决办法。