使用 fs
模块读取和解析 JSON 文件
Node.js 文档建议使用 fs
模块并自己完成读取文件和解析的工作。
import { readFile } from 'fs/promises'
const json = JSON.parse(
await readFile(
new URL('./some-file.json', import.meta.url)
)
)
这种方法比起我们接下来用的第二种方法更容易理解。
利用 CommonJS require
方法加载 JSON 文件
我们还可以使用 createRequire
加载 JSON 文件。
createRequire
允许您构造 CommonJS require
方法,以便可以使用典型的 CommonJS 功能,例如在 Node.js 中读取 JSON ES 模块。
import { createRequire } from 'module'
const require = createRequire(import.meta.url)
const data = require('./data.json')
前两种的区别:
- 二者的区别是
require
机制情况下,如果多个模块都加载了同一个 JSON 文件,那么其中一个改变了 JS 对象,其它跟着改变,这是由 Node 模块的缓存机制