Node.js

[NodeJS] 파일 시스템 접근하기(동기,비동기)

min_s 2025. 1. 31. 06:23

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

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

- 웹 브라우저에서는 제한적이었으나 노드는 권한을 갖고 있음.

 

readme.txt라는 파일을 만들고 '읽기 파일' 이라는 텍스트를 저장해두자.

이후 프로미시스 형식으로 파일을 읽으면 성공적으로 READ 완료

write도 같은 방식으로 손쉽게할 수 있다.

then을 사용하여 파일을 write(생성)한 이후에 바로 read까지

비동기 방식으로 실행된다. 비동기-논블로킹 방식이 효율적이므로 순서를 잘 고려하자.

fs는 동기, 비동기 모두를 지원한다. 

const fs = require('fs');

let data = fs.readFileSync('./readme.txt');
console.log(data.toString());

이런식으로 뒤에 Sync만 붙여주면 된다.

동기방식은 서버 실행된후, 아니면 1번만 실행될때만 사용한다.

대부분의 상황에서 비동기를 권장한다.

비동기로 순서를 정해서 실행하려면 다음과 같이 할 수 있다.

const fs = require('fs').promises;

async function main()[
	let data = await fs.readFile('./readme.txt')
    console.log('1번', data.toString());
    data = await fs.readFile('./readme.txt')
    console.log('2번', data.toString());
    data = await fs.readFile('./readme.txt')
    console.log('3번', data.toString());
    data = await fs.readFile('./readme.txt')
    console.log('4번', data.toString());
    data = await fs.readFile('./readme.txt')
}
main();

실행 결과의 모습

'Node.js' 카테고리의 다른 글

[NodeJS] 라우터 분리하기  (0) 2025.02.17
[NodeJS] Express  (0) 2025.02.11
[NodeJS] HTTP 모듈로 서버 만들기(REST API)  (0) 2025.02.03
[NodeJS] 버퍼와 스트림  (0) 2025.02.01
[NodeJS] worker_threads  (0) 2025.01.30