Front-End/Node.js
[Node.js] 2. FileSystem 모듈
nanee_
2021. 10. 26. 09:48
728x90
반응형
SMALL
FileSystem 모듈 (FS모듈)
: 파일 처리와 관련된 모듈로
Node.js 에서 가장 중요하고 기초가 되는 모듈이다.
- 메소드
readFile() : 파일을 비동기적으로 읽는다.
readFileSync() : 파일을 동기적으로 읽는다.
writeFile() : 파일을 비동기적으로 쓴다.
writeFileSync() : 파일을 동기적으로 쓴다.
동기적, 비동기적에 대해서 먼저 알아보겠다.
동기(Async) : 프로그램이 동작하는 상태에서 완전히 해당 내용을 끝내고 다음으로 제어를 넘기는 순차적인 방식이다.
비동기(Sync) : 동작이 끝나지 않은 상태에서도 제어권을 넘긴 후에 프로그램이 계속 진행되는 방식이다.
비동기는 다른 파일을 읽으면서 다른 작업을 하는데, 파일을 다 읽으면 callback 으로 전달받은 함수를 실행하게 되어있다.
그래서 비동기는 callback 함수 형식으로 짜여져야한다.
콜백 함수는 아래와 같은 형식이다.
예제코드
text1.txt 파일을 fs 모듈을 사용해 읽어보도록 하겠다.
const fs = require('fs'); // fs모듈 : 파일을 다루는 모듈
// 비동기식
fs.readFile('text1.txt', 'utf-8', (err, data) => {
if(err){
console.log(err);
}else{
console.log(`비동기식으로 읽음 : ${data}`);
}
});
// 동기식
const text = fs.readFileSync('text1.txt', 'utf-8');
console.log(`동기식으로 읽음 : ${text}`);
동기와 비동기가 동시에 실행을 하게 될 때에는 동기식이 우선으로 실행된다.
이번에는 비어있는 text2.txt 을 생성해 fs 모듈을 사용해 내용을 입력해보겠다.
아무런 내용도 채우지 않은 text2.txt 파일을 생성해주었다.
const fs = require('fs');
const data = "Hello Node.js !!";
// 비동기식
fs.writeFile('text2.txt', data, 'utf-8', (err) => {
if(err){
console.log('에러 발생!');
}else{
console.log('저장완료 / 비동기');
}
});
비동기식으로 Hello Node.js !! 라는 내용을 text2.txt 파일에 입력하는 코드이다.
저장이 잘 된 것을 확인할 수 있다.
728x90
반응형
LIST