FS 모듈 - nodejs

귤죽·2025년 3월 12일

fs가 헤깔리는 초급 이기에 "DO IT NODE.JS" 책 개념을 정리해보았습니다!
https://product.kyobobook.co.kr/detail/S000211207431

nodeJs의 파일관리 모듈 - FS(File System)

파일 읽기

파일을 처리하는 데 사용(읽기, 기록)
디렉토리, 새파일 등 파일에 관한 여러 기능 제공

비동기 처리 방법에 따른 함수 사용
1. promise에서 사용하는 함수(비동기)
2. 콜백에서 사용하는 함수(비동기)
3. 동기 처리 시 사용하는 함수

모듈 가져오기

const fs = require('fs'); 모듈 가져오기
fs.함수명

현재 dir읽기

'readdirSync', 'readdir' 함수. (sync이 붙은 게 동기함수다.)

기본형 fs.readdirSync(경로[, 옵션 인코딩])
경로를 읽어서 해당 폴더의 파일 이름을 표시.

readdirSync

const fs = require('fs');
let files = fs.readdirSync("./");
console.log(files);

readdir함수

fs.readdir(경로[,옵션],콜백)
디렉토리 처리가 시간이 걸려서 다른 일부터 처리하라는 의미에서 비동기 처리를 하는 것.

fs.readdir("./", (err, files) => {

});

파일 관리

많이 사용하는 파일 관리 함수
파일을 읽을 때 사용하는 readFileSync, readFile 함수

동기. readFileSync 함수

버퍼, 문자열로 반환.
fs.readFileSync(경로[, 옵션 : 인코딩과 flag])
flag란 ... 파일 열기, 권한? 느낌입니다. r이 기본값, r+ 읽고 쓰기, w 쓰기, a 추가

const fs = require("fs"); 
const data = fs.readFileSync("./example.txt"); // 읽어오기
console.log(data);

>>> Buffer(158) [110, 111, 100, 101, 106, 115, 32, 105, 115, 32, 97, ......
난리가 난다.

인코딩 옵션을 붙여주어야한다.
fs.readFileSync("./example.txt", "utf-8");

비동기 readFile 함수

fs.readFile(파일[,옵션], 콜백)

  • signal : 파일 읽는 시간이 길어질경우, signal 옵션으로 읽기 취소 가
  • 옵션 : encoding, flag, signal
  • 콜백 : err, data의 매개변수
const fs = require("fs");

fs.readFile("./example.txt", "utf-8", (err, data) => {
    if(err) console.error(err);
    console.log(data);
});

파일에 기록

writeFileSync

fs.writeFileSync(파일, 내용[,옵션])

  • 파일 : 기록할 파일
  • 내용 : 내용
  • 옵션 : encoding, flag(default:w), mode
  • mode : 파일에 대한 사용자의 권한..

existsSync

writeFileSync 함수로 똑같은 이름의 파일을 한 번더 생성하면 기존 내용은 사라짐. 그를 방지하기 위해서 파일 존재 여부를 확인할 때 쓰는 함수이다.

writeFile

fs.wirteFile(파일, 내용[, 옵션], 콜백)

  • 옵션 (encoding, mode, flag, signal)
  • encoding - 기본 uft8
  • mode 파일에 대한 권한
  • signal 파일 기록 시간이 길 경우, 파일 쓰기 취소 가능
  • 콜백 writeFile 함수서 콜백을 사용할때 err매개변수를 사용

기존 파일에 내용 추가

appendFileSync

appendFile

flag를 사용하지 않고 위의 해당 파일을 사용할 수 있음

파일 지우기

unlinkSync(파일), nulink(파일, 콜백)

profile
귤을 죽으로도 먹고싶을 만ㅋ큼 좋아합니다.귤귤귤

0개의 댓글