Node.js에서 fs.readFile, fs.readFileSync 사용시 발생 에러
발생 에러
Node.js에서 readFile()이나 readFileSync() 메서드를 사용해서 파일을 읽어오려고 할 때,
ENOENT: no such file or directory 에러가 발생했다.
const data = fs.readFileSync('../public/temp.txt', "utf-8");
---
node:fs:448
return binding.readFileUtf8(path, stringToFlags(options.flag));
^
Error: ENOENT: no such file or directory, open '../public/temp.txt'
이유
경로 설정이 상대경로로 잘못 설정되어 파일을 찾지 못하는 에러다.
fs.readFile() 이나 fs.readFileSync() 메서드는
상대경로(../public/temp.txt, ./temp.txt)가 아니라 절대경로(public/temp.txt, temp.txt)를 사용해야 한다.
해결 방법
절대경로를 사용해서 파일을 적는다.
폴더 구조
📦public
┗ 📜temp.txt // 읽고싶은 파일
📦src
┣ 📜App.js // 파일 읽어오려는 위치
┗ 📜index.js // 애플리케이션 진입점
위와 같은 폴더 구조라고 할 때,
App.js 파일에서 코드를 작성중이고, temp.txt 파일을 읽고 싶으면 public/temp.txt로 적는다.
const DATA = fs.readFileSync('public/temp.txt', "utf-8");
Leave a comment