될때까지

fs 본문

학습/Node.js

fs

랖니 2022. 8. 22. 17:45
728x90

fs

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

  • 파일/폴더 생성, 삭제, 읽기, 쓰기 가능
  • 웹 브라우저에서는 제한적이었으나 노드는 권한을 가지고 있음

파일 읽기

const fs = require("fs");

fs.readFile('./readme.txt', (err, data) => {
    if (err) {
        throw err;
    }
    console.log(data);    // 2진법을 16진법으로 바꾼 <Buffer ec a0 80 eb a5 bc 20 ec 9d bd ec 96 b4 ec a3 bc ec 84 b8 ec 9a 94 21> 출력
                         // buffer는 0,1과 같은 컴퓨터가 다루는 언어라고 생각하기  => 사람이 읽는 언어로 변화시키려면 toString해줘야함
    console.log(data.toString());
})

콜백말고 프로미스를 사용하면 코드를 조금 더 간략하게 작성할 수 있다.

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

fs.readFile('./readme.txt')
    .then((data) => {
        console.log(data);    
        console.log(data.toString());
    })
    .catch((err) => {
        throw err;
    });

 

파일 쓰기

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

fs.writeFile('./readme.txt', '글 입력하자')
    .then(() => {
    })
    .catch((err) => {
        throw err;
    });

입력한 내용을 읽어서 콘솔에 출력하기

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

fs.writeFile('./readme.txt', '글 입력하자')
    .then(() => {
        return fs.readFile('./readme.txt');
    })
    .then((data) => {
        console.log(data.toString())
    })
    .catch((err) => {
        throw err;
    });

 

비동기적 실행

  • 결과값이 매번 바뀌는 걸 확인할 수 있다 => 비동기로 실행되기 때문에 결과 예측이 불가하다.(순서 보장 x)
  • 콜백함수들이 백그라운드에서 비동기적으로 실행되기때문에 먼저 끝나는 아이들이 콘솔에 찍힌다.
  • 운영체제마음임

 

동기적 실행

순서대로 실행되지만 느리겠지 순서를 유지하니까!

728x90

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

예외 처리하기  (0) 2022.08.22
버퍼와 스트림  (1) 2022.08.22
crypto와 util  (0) 2022.08.21
os와 path  (0) 2022.08.21
process  (0) 2022.08.21