CommonJS与JSON?

问题描述

我需要在不使用另一个NPM包的情况下向我的JSON添加注释,所以我有个主意,将module.exports =添加到我的JSON文件的开头,以便它成为Commonjs模块(带有普通的JS对象)我可以以完全相同的方式使用在执行此操作时是否需要权衡?

解决方法

您当然可以这样做:

const data = require('myfile.json');

文件中包含JSON数据

{"someProp": "someValue"}

或者,您可以执行以下操作:

const data = require('mfile.js');

与此相关的文件:

module.exports = {"someProp": "someValue"};

一个是模块文件。一个是JSON文件。它实际上仅取决于您希望它是什么,或者此文件是否有其他客户端希望它是一种方式。尽管CommonJS模块可以包含更多类型的数据,注释等,但是这两种方式都没有特定的优点或缺点,因为JSON限制了其中的内容。如果您遵循适当的格式规则,那么两者对于核心数据都将正常工作。

如果要向数据添加Javascript注释,则无法在JSON中执行此操作,因此需要将其设置为模块,并且这样做没有特定的缺点。

请注意,要使require()自动解析JSON,它必须具有.json文件扩展名。要将其解析为Javascript CommonJS模块,它不得具有.json文件扩展名。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...