欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

ECMAScript模塊中nodejs怎么加載json文件

這篇文章主要講解了“ECMAScript模塊中nodejs怎么加載json文件”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“ECMAScript模塊中nodejs怎么加載json文件”吧!

站在用戶的角度思考問題,與客戶深入溝通,找到柞水網(wǎng)站設計與柞水網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站建設、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)絡空間、企業(yè)郵箱。業(yè)務覆蓋柞水地區(qū)。

ECMAScript模塊中nodejs怎么加載json文件

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

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

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

3、學到import.meta.url

3、學到new URL()

4、學到load-json-file庫

眾所周知,如果是在CommonJS模塊中加載json文件,只需通過require()函數(shù)直接加載即可,即能得到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文件呢?其實是有兩種方案的:

假設現(xiàn)在有一個json文件:test.json

文件內(nèi)容如下:

{
    "name": "project"
}

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

一、 通過 fs 文件系統(tǒng)讀取 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: 根據(jù) ECMAScript 頂層 await 提案,await 關鍵字可用于模塊內(nèi)的頂層(異步函數(shù)之外);

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

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

二、 通過nodejs內(nèi)置module模塊的createRequire方法實現(xiàn)

import { createRequire } from "module";

const require = createRequire(import.meta.url);
const json = require('./test.json');

console.log('[json2]:', json); // 輸出: { "name": "project" }

這種方法是根據(jù)nodejs提供的createRequire方法實現(xiàn)。

ECMAScript模塊中nodejs怎么加載json文件

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

load-json-file 是我在npm網(wǎng)站無意間發(fā)現(xiàn)的,源碼只有僅僅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進行轉(zhuǎn)義,沒有用`buffer.toString()`和`fs.readFile(path, 'utf8')`,是因為`new TextDecoder().decode(buffer)`這種方式可以刪除字節(jié)順序標記(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) {
        // 如果未指定編碼,則返回原始緩沖區(qū)。
	const buffer = await readFile(filePath);
	return parse(buffer, options);
}

// 導出同步方法
export function loadJsonFileSync(filePath, options) {
        // 如果未指定編碼,則返回原始緩沖區(qū)。
	const buffer = readFileSync(filePath);
	return parse(buffer, options);
}

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

感謝各位的閱讀,以上就是“ECMAScript模塊中nodejs怎么加載json文件”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對ECMAScript模塊中nodejs怎么加載json文件這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關知識點的文章,歡迎關注!

新聞標題:ECMAScript模塊中nodejs怎么加載json文件
URL分享:http://aaarwkj.com/article28/pdhojp.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設計、移動網(wǎng)站建設、域名注冊、用戶體驗、標簽優(yōu)化云服務器

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設計
亚洲最大成人av在线| 中文字幕人妻丝乱一区三区| 男女性情视频免费大全网站| 91久久精品国产免费一区| 欧美三级欧美一级视频看 | 日韩精品在线观看大全套| 丝袜美腿一区二区三区动态图| 18禁视频免费无遮挡| 亚洲三级黄色在线观看| 精品在欧美一区二区少妇| 中文字幕在线日韩av| 久久成人影院免费观看| 97国产超碰在线观看| 国产精品午夜福利天堂| 亚洲性感美女男人的天堂| 亚洲精品永久在线观看| 亚洲一级特黄大片在线观看| 亚洲性图中文字幕在线| 欧美午夜福利视频网址| 一二三四在线观看日本资讯| 中国亚洲视频一区二区| 五月激情开心久久婷婷| 亚洲高清中文字幕一区二三区| 国产精品久久护士96| 日本熟熟妇丰满人妻啪啪| 日韩一区二区三区中文字幕| 中文字幕免费不卡一区| 国产老熟女一区二区三区| 熟女中文字幕一区二区| 中文字幕乱码日韩一二三区 | 久久精品国产亚洲av亚| 国产麻豆91在线视频| 中国美女下面毛茸茸视频| 人妻激情偷乱视91九色| 免费观看中国性生活片| 久久 久久国内精品亚洲| 国产成人精品一区二区国产乱码| 日韩欧美中文字幕综合网| 青青草原一区在线观看| 亚洲午夜精品毛片成人| 亚洲a∨乱码一区二区三区蜜臀|