fs 모듈
파일 시스템에 접근하는 모듈, 파일을 생성하거나 삭제하고, 읽거나 쓸 수 있다.
readFile
readme.txt
저를 읽어주세요.
readFile.js
const fs = require('fs');
fs.readFile('./readme.txt',(err,data)=> {
if(err){
throw err;
}
console.log(data);
console.log(data.toString());
});
결과
PS C:\Users\lee\Desktop\study\nodejs\study> node readFile.js
<Buffer ec a0 80 eb a5 bc 20 ec 9d bd ec 96 b4 ec a3 bc ec 84 b8 ec 9a a9 2e>
저를 읽어주세요.
readFile의 결과물은 버퍼 형식으로 제공된다. 사람이 읽을 수 있게 변환해주려면 toString을 사용해 문자열로 변환한다. 버퍼와 스트림
fs는 콜백 형식 모듈이므로 실무에서 사용하기 불편하고, 주로 fs를 프로미스 형식으로 바꿔주는 방법을 사용한다.
readFilePromise.js
const fs = require('fs').promises;
fs.readFile('./readme.txt')
.then((data)=>{
console.log(data);
console.log(data.toString());
})
.catch((err)=> {
console.error(err);
})
여러개의 파일을 비동기로 읽으려면 Promise나 async/await을 쓴다.
asyncOrderPromise.js
const fs = require('fs').promises;
console.log('시작');
fs.readFile('./readme2.txt')
.then((data) => {
console.log('1번', data.toString());
return fs.readFile('./readme2.txt');
})
.then((data) => {
console.log('2번', data.toString());
return fs.readFile('./readme2.txt');
})
.then((data) => {
console.log('3번', data.toString());
return fs.readFile('./readme2.txt');
})
.catch((err) => {
console.log(err);
});
writeFile
writeFile.js
const fs = require('fs').promises;
fs.writeFile('./writeme.txt','글이 입력됩니다.')
.then(()=>{
return fs.readFile('./writeme.txt');
})
.then((data)=>{
console.log(data.toString());
})
.catch((err)=>{
console.error(err);
});
Share article