gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区

站長資訊網
最全最豐富的資訊網站

淺析ECMAScript模塊中nodejs如何加載json文件

ECMAScript模塊中node如何加載json文件》下面本篇文章就來給大家介紹一下nodejs在ECMAScript 模塊中加載json文件的方法,希望對大家有所幫助!

淺析ECMAScript模塊中nodejs如何加載json文件

看完這篇文章,你將學到:

1、nodejs 如何加載、解析json文件

2、fs 模塊如何讀取json文件

3、學到import.meta.url

3、學到new URL()

4、學到load-json-file庫

眾所周知,如果是在CommonJS模塊中加載json文件,只需通過require()函數直接加載即可,即能得到json對象。

但是在ECMAScript模塊中直接加載json文件,會報錯,報錯如下:

淺析ECMAScript模塊中nodejs如何加載json文件

首先,先啟用ESM模式,其實官方文檔(http://nodejs.cn/api/esm.html#introduction)中也有說明:

Node.js 默認將 JavaScript 代碼視為 CommonJS 模塊。 作者可以通過 .mjs 文件擴展名、package.json "type" 字段、或 --input-type 標志告訴 Node.js 將 JavaScript 代碼視為 ECMAScript 模塊

那怎么才能在ECMAScript模塊加載json文件呢?其實是有兩種方案的:

假設現在有一個json文件:test.json

文件內容如下:

{     "name": "project" }

接下來,在index.js中引入test.json:

一、 通過 fs 文件系統讀取 json 文件

import { readFile } from "fs/promises"; // 以promise的方式引入 readFile API  const json = JSON.parse(     await readFile(new URL('./test.json', import.meta.url)) )  console.log('[json1]:', json); // 輸出: { "name": "project" }

解釋:

await: 根據 ECMAScript 頂層 await 提案,await 關鍵字可用于模塊內的頂層(異步函數之外);

import.meta.urlnodejs中返回模塊在本地的file://協議的絕對路徑,例如:file://home/user/main.js, 如果模塊中還有另外一個文件test.js,那么test.js的路徑就是new URL('test.js', import.meta.url)

new URL: 生成file: 協議的對象(對于大多數 fs 模塊函數,pathfilename 參數可以作為使用 file: 協議的對象傳入)。

二、 通過nodejs內置module模塊的createRequire方法實現

import { createRequire } from "module";  const require = createRequire(import.meta.url); const json = require('./test.json');  console.log('[json2]:', json); // 輸出: { "name": "project" }

這種方法是根據nodejs提供的createRequire方法實現。

淺析ECMAScript模塊中nodejs如何加載json文件

三、 24行源碼的第三方庫 load-json-file

load-json-file 是我在npm網站無意間發現的,源碼只有僅僅24行,如下:

import {readFileSync, promises as fs} from 'node:fs';  const {readFile} = fs;  const parse = (buffer, {beforeParse, reviver} = {}) => {  	// Unlike `buffer.toString()` and `fs.readFile(path, 'utf8')`, `TextDecoder`` will remove BOM.         // 這里對buffer進行轉義,沒有用`buffer.toString()`和`fs.readFile(path, 'utf8')`,是因為`new TextDecoder().decode(buffer)`這種方式可以刪除字節順序標記(BOM)                  // 解碼 buffer 并返回字符串 	let data = new TextDecoder().decode(buffer);                  // 在parse解析之前對字符串進行處理 	if (typeof beforeParse === 'function') { 		data = beforeParse(data); 	}  	return JSON.parse(data, reviver); };  // 導出異步方法 export async function loadJsonFile(filePath, options) {         // 如果未指定編碼,則返回原始緩沖區。 	const buffer = await readFile(filePath); 	return parse(buffer, options); }  // 導出同步方法 export function loadJsonFileSync(filePath, options) {         // 如果未指定編碼,則返回原始緩沖區。 	const buffer = readFileSync(filePath); 	return parse(buffer, options); }

load-json-file 源碼 整體而言相對比較簡單,但是也有很多可以學習深挖的學習的知識點。

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
日本在线观看免费视频| 免费看一级大黄情大片| 中文字幕黄色大片| 午夜啪啪免费视频| 精品日韩在线播放| 国产精品第12页| 日韩av资源在线| 四虎1515hh.com| 国产午夜伦鲁鲁| www.51色.com| 国产午夜伦鲁鲁| 亚洲自拍第三页| 日本肉体xxxx裸体xxx免费| 日韩视频在线观看视频| 国产色视频在线播放| 日本成年人网址| 欧美v在线观看| 亚洲熟妇av一区二区三区漫画| 日本福利视频网站| 国产女主播av| 日本免费a视频| 视色,视色影院,视色影库,视色网 日韩精品福利片午夜免费观看 | 日韩精品一区二区三区色欲av| 国产日韩亚洲欧美在线| 久久手机在线视频| 无码专区aaaaaa免费视频| 日韩av新片网| 国产麻花豆剧传媒精品mv在线| 国产97在线 | 亚洲| 精品人妻少妇一区二区| 国产成人无码精品久久久性色| 黄色大片中文字幕| 成人一区二区三| 免费看污黄网站| 亚洲18在线看污www麻豆| 免费不卡av网站| 日本男女交配视频| 欧美极品欧美精品欧美图片| 黄色av免费在线播放| 久久国产这里只有精品| 老汉色影院首页| 日韩av三级在线| 一道本在线免费视频| 国产不卡的av| 青青草视频在线免费播放| 欧美在线观看视频网站| 欧美国产日韩另类| 可以看毛片的网址| 2025韩国理伦片在线观看| 黄色影视在线观看| 久久综合久久色| av磁力番号网| 99热在线这里只有精品| 97人人爽人人| 成人中文字幕在线播放| 亚洲男人天堂2021| 久久久亚洲精品无码| 国产一区二区在线观看免费视频| 日本免费a视频| 免费成人黄色大片| 成人观看免费完整观看| 午夜啪啪福利视频| 99视频在线视频| 欧美精品久久久久久久免费| 亚洲男人天堂2021| 91在线视频观看免费| 国产 日韩 欧美在线| 五月天男人天堂| 在线看的黄色网址| 欧美三级午夜理伦三级| 老子影院午夜伦不卡大全| 中文国产在线观看| 国产小视频精品| 久久久免费视频网站| 女人被男人躁得好爽免费视频| 午夜剧场高清版免费观看| 免费大片在线观看| 国产深夜男女无套内射| a级黄色片免费| 成人短视频在线看| 久久婷婷中文字幕| 孩娇小videos精品| 久久婷婷国产91天堂综合精品| 国产精品裸体瑜伽视频| 久艹在线免费观看| 丰满的少妇愉情hd高清果冻传媒| 视频一区二区视频| 黄色高清视频网站| 亚洲最新免费视频| 在线免费看v片| 久久精品久久99| 亚洲一二区在线观看| 国内av一区二区| 99九九精品视频| 国产精品88久久久久久妇女| 一区二区久久精品| 国产大尺度在线观看| 三级在线免费观看| 久草视频国产在线| 99色精品视频| 99视频在线视频| 伊人精品视频在线观看| 欧美做受777cos| 麻豆tv在线播放| 免费观看精品视频| xxww在线观看| 国产精品8888| 欧美一级在线看| 日韩av片在线看| 另类小说色综合| 一级黄色片国产| av磁力番号网| 国产熟女高潮视频| 最新av免费在线观看| 成年在线观看视频| 久久久噜噜噜www成人网| aaa毛片在线观看| 在线观看av免费观看| 黑人巨茎大战欧美白妇 | 日韩a∨精品日韩在线观看| 热久久精品国产| 大桥未久一区二区| 不卡影院一区二区| 一级黄色录像免费看| 能在线观看的av| 成人短视频在线看| 美女av免费在线观看| 国产精品99久久久久久大便| 激情伊人五月天| 在线成人免费av| 国产精彩免费视频| 人人妻人人澡人人爽欧美一区双| 激情五月亚洲色图| 久久这里只有精品8| 国产色视频在线播放| 欧美 日韩 国产在线观看| 91欧美一区二区三区| 国产裸体舞一区二区三区| 精品视频在线观看一区二区| 日本久久久久久久久久久久| 男人日女人视频网站| 日日夜夜精品视频免费观看| 九色porny91| 欧美 日韩 国产在线观看| av中文字幕av| 欧美 国产 精品| 久久久久久久久久毛片| 天天色综合天天色| 成年人免费在线播放| 黄色大片中文字幕| 青青草综合在线| 91嫩草国产丨精品入口麻豆| 99九九99九九九99九他书对| 国产一二三四在线视频| av免费播放网址| 日韩中文字幕在线免费| 日韩在线视频在线| 欧美 亚洲 视频| 欧洲美女和动交zoz0z| 亚洲一区二区三区观看| 午夜剧场高清版免费观看| 啊啊啊国产视频| 熟女人妇 成熟妇女系列视频| 美女日批免费视频| 成人在线免费在线观看| www.亚洲天堂网| 九九热免费精品视频| 另类小说第一页| 国产三级生活片| 一区二区三区四区久久| 欧美在线观看黄| 可以看毛片的网址| 黄色片久久久久| 亚洲综合激情视频| 久久精品国产精品亚洲精品色| 成人性做爰片免费视频| 和岳每晚弄的高潮嗷嗷叫视频| 九一国产精品视频| 久久午夜夜伦鲁鲁一区二区| 亚洲欧美久久久久| 国产九九九视频| 成人网站免费观看入口| 国产精品沙发午睡系列| 美女少妇一区二区| 日韩视频在线观看视频| 水蜜桃色314在线观看| 一本色道无码道dvd在线观看| 91淫黄看大片| 中文字幕免费高| 丰满人妻中伦妇伦精品app | 日本美女视频一区| 国产美女永久无遮挡| 人妻少妇被粗大爽9797pw| 免费精品99久久国产综合精品应用| 激情成人在线观看| 国产资源在线视频| 中文字幕在线视频一区二区| 日韩a∨精品日韩在线观看| 天天干天天爽天天射| 蜜臀av色欲a片无码精品一区|