File System 모듈 Javascript & HTML & CSS/node.js2016. 8. 8. 02:22
동기식은 바꿔 말하면 blocking함수라는 얘기고,
비동기식은 non-blocking함수라는 얘기다.
동기 방식(blocking) 읽기
var fs = require('fs'); console.log("start"); var result = fs.readFileSync('test.txt', 'utf8'); console.log(result); console.log("end"); |
결과
동기식이므로 프로그램에 기술된 순서대로 start -> 파일입출력 -> end 순으로 실행됨.
비동기 방식(non-blocking) 읽기
var fs = require('fs'); console.log("start"); fs.readFile('test.txt', 'utf8', function(error, data){ console.log(data); }); console.log("end"); |
결과
비동기식이므로 프로그램에 기술된 순서대로 동작하지 않음.
start -> 파일입출력 콜백 등록 -> end -> 파일입출력 콜백 완료 순으로 실행됨.
(물론 파일입출력이 엄청나게 빨리 끝나는 경우라면 end가 찍히기 전에 test file!!!이 찍힐 가능성도 존재하긴 함)
동기방식 쓰기(예외처리는 try catch로 함)
fs.readFileSync('test.txt', 'hahaha', 'utf8');
비동기방식 쓰기(예외처리는 error인자로 함. 에러 미발생 시 undefined가 넘어옴. 그러면 undefined는 조건문에서 false로 판별하여 처리하면 됨)
fs.readFile('test.txt', 'hahaha', 'utf8', function(error){
//예외처리 및 로그
});
'Javascript & HTML & CSS > node.js' 카테고리의 다른 글
[GitBook] Node.js & MonboDB (0) | 2016.08.09 |
---|---|
request 객체 : 페이지를 구분하는 방법 (0) | 2016.08.09 |
crypto 모듈 : Hash(sha256), AES(aes192) (0) | 2016.08.08 |
util 모듈 사용법 (0) | 2016.08.07 |
url 모듈 사용법 (0) | 2016.08.07 |