기본 패턴
javascript
import { readFile, writeFile } from "node:fs/promises";
async function loadConfig() {
const raw = await readFile(new URL("./config.json", import.meta.url), "utf-8");
return JSON.parse(raw);
}
await writeFile("./log.txt", "시작 " + new Date().toISOString());설명
fs/promises는Promise기반 API로await과 같이 쓰기 좋습니다.import.meta.url+new URL(..., import.meta.url)패턴은 ESM에서 상대 경로를 계산하는 표준 방식입니다.writeFile후readFile을 순차적으로await하면 블로킹 없이 순서 보장도 가능합니다.
짧은 예제
javascript
const data = await Promise.all(
["a.txt", "b.txt"].map((name) => readFile(name, "utf-8")),
);
console.log(data.join(", "));빠른 정리
| 함수 | 설명 |
|---|---|
readFile(path, enc) | 비동기 읽기 |
writeFile(path, data) | 비동기 쓰기 |
mkdir(path, { recursive: true }) | 중첩 폴더 생성 |
주의할 점
writeFile은 디렉터리 없이 쓰면 실패하니 mkdir을 먼저 쓰거나 recursive 플래그를 확인하세요.