상세 컨텐츠

본문 제목

fs 모듈 (동기와 비동기) - Nodejs

Programming/Concept

by 쌩우 2019. 5. 14. 16:28

본문

const fs = require('fs');

//파일 읽기
fs.readFile('./readme.txt', (err, data) => {
    if(err) {
        throw err;
    }
    console.log(data.toString());
});

//파일 쓰기(만들기)
fs.writeFile('./writeme.txt', '내용을 써주세요', (err, data) => {
    if(err) {
        throw err;
    }
    fs.readFile('./writeme.txt', (err, data) => {
        if(err) {
            throw err;
        }
        console.log(data.toString());
    });
});

동기 비동기
fs method는 뒤에 Sync를 붙이면 동기식으로 작동한다.
주로 데스크탑 프로그램이나 딱 한번만 실행되는 함수에서 사용한다.
ex) fs.readFileSync, fs.writeFileSync 등등.
하지만 실제로는 동기식 작동은 다른 작업을 수행할 시간을 잡아먹으므로,
기존처럼 비동기식으로 많이 쓴다. callback hell을 탈피하기 위해서는 util.promisify를 사용하거나,
Node10의 fs.promise를 사용해서 극복한다.

//fs.readFileSync로 동기적인 호출이 가능
const fs = require('fs');

console.log('start');
let data = fs.readFileSync('./readme.txt');
console.log('1st', data.toString());
data = fs.readFileSync('./readme.txt');
console.log('2nd', data.toString());
data = fs.readFileSync('./readme.txt');
console.log('3rd', data.toString());
console.log('end')

//동기적 호출로써, start, 1 ~ 3, end까지 차례대로 나온다. 



관련글 더보기

댓글 영역