使用 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
允許您構(gòu)造 CommonJS require
方法,以便可以使用典型的 CommonJS 功能,例如在 Node.js 中讀取 JSON ES 模塊。
import { createRequire } from 'module'
const require = createRequire(import.meta.url)
const data = require('./data.json')
前兩種的區(qū)別:
- 二者的區(qū)別是
require
機(jī)制情況下,如果多個(gè)模塊都加載了同一個(gè) JSON 文件,那么其中一個(gè)改變了 JS 對(duì)象,其它跟著改變,這是由 Node 模塊的緩存機(jī)制造成的,只有一個(gè) JS 模塊對(duì)象 - 第一種方式可以隨意改變加載后的 JS 變量,而且各模塊互不影響,因?yàn)樗麄兌际仟?dú)立的,是多個(gè) JS 對(duì)象。
import Assertions
JSON 模塊已經(jīng)存在于 Chrome 91,它看起來就像一個(gè) ES Modules 風(fēng)格的導(dǎo)入,只是你在最后設(shè)置了類型。文章來源:http://www.zghlxwxcb.cn/news/detail-462667.html
import data from './data.json' assert { type: 'json' }
console.log(data)
當(dāng) Chrome 中有解決方案時(shí),它很快就會(huì)在 Node.js 中發(fā)布。文章來源地址http://www.zghlxwxcb.cn/news/detail-462667.html
到了這里,關(guān)于在 ES 模塊(Node.js)中導(dǎo)入 JSON 文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!