우리는 앞서 pipe 메서드를 살펴보면서, 노드 8.5 버전 이후에는 createReadStream과 createWriteStream을 굳이 pipe하지 않아도 파일 복사가 가능하다고 언급한 적이 있습니다.
좀 더 간단하게 파일을 복사하는 예제를 살펴보겠습니다.
const fs = require('fs').promises;
fs.copyFile('readme4.txt', 'writeme4.txt')
.then(() => {
console.log('copy finished');
})
.catch((error) => {
console.error(error);
});
/* 출력
copy finished
*/
위 예제를 실행할 경우 writeme4.txt가 생성됩니다. copyFile 메서드에서 파라미터에 복사할 파일, 복사될 경로, 복사 후 실행할 콜백 함수를 작성합니다.
마지막으로 watch 메서드를 살펴보겠습니다. watch 메서드는 파일과 폴더의 변경 사항을 감지하여 동작을 실행할 수 있는 메서드입니다. 일단, 빈 텍스트 파일인 targetObj.txt를 생성합니다.
const fs = require('fs');
fs.watch('./targetObj.txt', (eventType, filename) => {
console.log(eventType, filename);
})
/* 출력
// 파일 내용 수정 후 저장할 때
change targetObj.txt
change targetObj.txt
// 파일명 변경 또는 삭제할 때
rename targetObj.txt
*/
파일 수정시 change 이벤트 발생, 삭제 또는 파일명 변경 시 rename 이벤트가 발생합니다. 참고로 rename 이벤트가 실행되고 나면 watch는 더 수행되지 않습니다.
'Programming > Node.js' 카테고리의 다른 글
4. Node 기능 살펴보기 (10) - 이벤트 이해하기 [1/2] (0) | 2024.06.18 |
---|---|
4. Node 기능 살펴보기 (9) - 스레드 풀 (1) | 2024.06.12 |
4. Node 기능 살펴보기 (8) - fs메서드 살펴보기 3 (0) | 2024.06.03 |
4. Node 기능 살펴보기 (8) - fs메서드 살펴보기 2 (0) | 2024.05.30 |
4. Node 기능 살펴보기 (8) - fs메서드 살펴보기 1 (0) | 2024.05.29 |