본문 바로가기

Programming/Node.js

4. Node 기능 살펴보기 (8) - fs메서드 살펴보기 4

node js logo image

 

 

 

 

 

우리는 앞서 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는 더 수행되지 않습니다.