fs

Soony·2023년 9월 11일

Node.js

목록 보기
7/7
post-thumbnail

파일 시스템에 접근하는 모듈

  1. 파일/폴더 생성, 삭제, 읽기, 쓰기 가능

  2. 웹 브라우저에서는 제한적이었으나 노드는 권한을 가지고 있다.

  3. readFile은 비동기적으로 동작한다.

1. 파일을 읽어올 때

const fs = require('fs');

fs.readFile('파일',(err,data) => {
if(err) {
throw err;
}
console.log(data); // 바이너리 코드가 나온다.
console.log(data.toString())
}

파일을 여러개 읽어올 때

1. 파일을 쓸 때

const fs = require('fs');

fs.writeFile('파일','내용')
.then(() => {
})
.catch((err) => {
throw err;
});

2. 파일을 읽을 때

2 - 1 파일을 동기적으로 읽어올 때 readFileSync

const fs = require("fs");

let data = fs. readFileSync('파일');
console.log('1',data.toString());

data = fs. readFileSync('파일');
console.log('2',data.toString());

data = fs. readFileSync('파일');
console.log('3',data.toString());

data = fs. readFileSync('파일');
console.log('4',data.toString());

2 - 2 파일을 비동기적으로 읽어올 때 readFile

2 - 2 - 1 파일을 순서없이 읽어올 때

실행시 비동기 호출들은 백그라운드로 가서 실행되기 때문에 어떻게 실행될지는 OS만 알 수 있다.

2 - 2 - 2 비동기 호출을 이용해서 파일을 순서대로 읽어올 때

비동기 호출을 했지만 순서대로 실행되는 것을 볼 수 있다. 하지만 보는것 처럼 콜백 헬이 발생하였고 promises를 이용해서 한다면 콜백 헬을 해결할 수 있다.

fs를 가져올 때 require('fs').promises

node는 fs 파일을 읽어 올 때는 readFile은 비동기 처리가 되지만 콜백 헬에 걸릴 수 있다. 콜백 헬을 해결하기 위해 promises를 지원한다

async await를 사용하여 좀 더 깔끔하게 만들자면

profile
한걸음씩

0개의 댓글