ES 모듈(Node.js)에서 JSON 파일을 가져오는 방법

3554 단어 node
ES 모듈은 여전히 ​​Node.js 영역에서 상당히 새롭습니다(Node 14 이후로 안정적임). Modules come with a built-in module system and features such as top-level await .

방금 유익한 정보post on ES modules by Pawel Grzybek를 읽고 오늘날 ES 모듈에서 JSON 파일을 가져올 수 없다는 것을 배웠습니다. Node.js에서 const data = require('./some-file.json')를 수행하는 데 꽤 익숙하기 때문에 정말 짜증납니다.

it will be possible to import JSON from within modules eventually 이지만 구현은 여전히 ​​플래그 뒤에 있습니다( --experimental-json-modules ).

이 게시물에는 오늘날 ES 모듈에서 JSON을 처리하는 방법이 포함되어 있습니다.

옵션 1: JSON 파일을 직접 읽고 구문 분석



Node.js 문서에서는 fs 모듈을 사용하고 파일을 읽고 구문 분석하는 작업을 직접 수행할 것을 권장합니다.

import { readFile } from 'fs/promises';
const json = JSON.parse(
  await readFile(
    new URL('./some-file.json', import.meta.url)
  )
);


옵션 2: CommonJS require 함수를 활용하여 JSON 파일 로드



문서에는 JSON 파일을 로드할 수 있다고 명시되어 있습니다use createRequire . 이것이 Pawel이 자신의 블로그 게시물에서 조언하는 방식입니다.
createRequire Node.js EcmaScript 모듈에서 일반적인 CommonJS 기능을 사용할 수 있도록 CommonJSrequire 함수를 구성할 수 있습니다.

import { createRequire } from "module";
const require = createRequire(import.meta.url);
const data = require("./data.json");


JSON 파일을 어떻게 로드해야 하나요?



모르겠어요. 🤷‍♂️ 어느 쪽도 기분이 좋지 않고 아마도 첫 번째 옵션이 더 이해하기 쉽기 때문에 계속 고수할 것입니다.

안정적인 JSON 모듈이 Node.js에 언제 들어왔는지 봅시다!

좋은 웹페이지 즐겨찾기