안녕하세요.
이번에는 Node.js의 파일 모듈을 간단하게 사용해 보겠습니다.
1. fs 모듈
- 파일 관련 처리 모듈
- 사용 시 require 함수로 가져와서 사용한다.
const fs = require('fs');
1-1. readFile 함수
- 파일의 데이터를 가져올 수 있는 함수
test.txt 파일의 데이터를 가져와서 출력하는 내용입니다.
const fs = require('fs');
fs.readFile('./test.txt', function(err, data) {
if(err) {
throw err;
}
console.log('data : ', data);
console.log('data2 : ', (String(data)));
console.log('data3 : ', data.toString());
});
데이터를 가져와서 그냥 출력하면 Buffer 형태로 보여줍니다.
그래서 String으로 변환 후 출력을 해야 정상적인 데이터가 나옵니다.
- 파일 없는 경우
파일이 없는 상태로 실행하면 error가 발생하며 throw err; 명령어가 실행됩니다.
에러 메시지를 보여주고 프로그램을 종료시킵니다.
- Promise 사용
- require 함수를 사용할 때 뒤에 promises를 붙이면 Promise 기능도 사용할 수 있습니다.
const fs2 = require('fs').promises;
// promises 함수를 사용할 수 있게 됨
fs2.readFile('./test.txt')
.then((data) => {
console.log('promise - data : ', data.toString());
});
1-2. wrtieFile 함수
- 파일 생성하는 함수
- writeFile 함수는 resolve 값을 보내지 않습니다.
‘sesac’라는 내용을 write.txt 파일에 저장하겠다는 뜻입니다.
그리고 생성한 write.txt를 읽어서 콘솔로 출력하는 코드입니다.
- 이미 같은 이름의 파일이 존재해도 실행되지만, 내용이 덮어쓰기 됩니다.
const fs2 = require('fs').promises;
// writeFile 함수는 resolve 값을 보내지 않아서 다음 함수에서 msg 변수로 읽는 방법이 없다.
fs2.writeFile('./write.txt', 'sesac')
.then(function() {
return fs2.readFile('./write.txt');
})
.then(function(data) {
console.log(data.toString());
});
- callback 방식의 writeFile 함수
Promise를 사용하지 않고 사용한 방식입니다.
결과는 동일합니다.
const fs = require('fs');
fs.writeFile('./write2.txt', 'test', function(err) {
if(err) {
throw err;
}
console.log('write2File success!');
fs.readFile('./write2.txt', function(err, data) {
if(err) {
throw err;
}
console.log('write2File data : ', data.toString());
})
});
1-3. copyFile 함수
- 파일을 복사하는 함수
- fs.copyFile('./a.txt', './b.txt');
- a.txt 파일을 복사해서 b.txt 파일을 생성한다.
1-4. rename 함수
- 파일 이름을 변경하는 함수
- fs.rename('./oldName.txt', './newName.txt');
- oldName.txt 파일을 newName.txt 파일로 이름을 변경한다.
wrtieFile을 이용해서 sesac.txt 파일을 생성합니다.
내용은 ‘반갑습니다.’가 저장됩니다.
그리고 sesac.txt파일을 복사해서 sesac2.txt 파일을 생성합니다.
복사한 sesac2.txt 파일의 이름을 new.txt 파일로 변경합니다.
const fs = require('fs').promises;
fs.writeFile('./sesac.txt', "반갑습니다.")
.then(function(err) {
if(err) throw err;
console.log('writeFile 생성');
return fs.copyFile('./sesac.txt', './sesac2.txt');
})
.then(function(err) {
if(err) throw err;
console.log('copyFile success');
return fs.rename('./sesac2.txt', './new.txt');
})
.then(function(err) {
if(err) throw err;
console.log('sesac2 => new');
});
실제로 파일을 확인해 보면 변경된 파일들을 확인할 수 있습니다.
이상으로 Node.js의 파일(fs) 모듈에 대하여 알아보았습니다.
감사합니다.
반응형
'Node' 카테고리의 다른 글
[Node.js] Express 기본 셋팅에 대하여 알아보기 (0) | 2023.02.27 |
---|---|
[Node.js] HTTP 모듈에 대하여 알아보 (0) | 2023.02.11 |
[Node.js] 프로미스(Promise)에 대하여 알아보기 (0) | 2023.02.09 |
[Node.js] Callback Function(콜백 함수)에 대하여 알아보기 (0) | 2023.02.08 |
[Node.js] 클래스 간단하게 사용해보기 (0) | 2023.02.07 |