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.함수명
'readdirSync', 'readdir' 함수. (sync이 붙은 게 동기함수다.)
기본형 fs.readdirSync(경로[, 옵션 인코딩])
경로를 읽어서 해당 폴더의 파일 이름을 표시.
const fs = require('fs');
let files = fs.readdirSync("./");
console.log(files);
fs.readdir(경로[,옵션],콜백)
디렉토리 처리가 시간이 걸려서 다른 일부터 처리하라는 의미에서 비동기 처리를 하는 것.
fs.readdir("./", (err, files) => {
});
많이 사용하는 파일 관리 함수
파일을 읽을 때 사용하는 readFileSync, readFile 함수
버퍼, 문자열로 반환.
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");
fs.readFile(파일[,옵션], 콜백)
const fs = require("fs");
fs.readFile("./example.txt", "utf-8", (err, data) => {
if(err) console.error(err);
console.log(data);
});
fs.writeFileSync(파일, 내용[,옵션])
writeFileSync 함수로 똑같은 이름의 파일을 한 번더 생성하면 기존 내용은 사라짐. 그를 방지하기 위해서 파일 존재 여부를 확인할 때 쓰는 함수이다.
fs.wirteFile(파일, 내용[, 옵션], 콜백)
flag를 사용하지 않고 위의 해당 파일을 사용할 수 있음