반응형
// filecopy.js
const fs = require('fs');
(async () => {
fs.copyFile('origin.txt', 'copied.txt', err => {
if(err) throw err;
console.log('origin.txt파일이 copied.txt파일로 복사되었습니다.');
});
})();
fs.copyFile("원본파일", "복사될파일", callback함수) |
만약 아래와 같이 origin.txt파일이 실행하려는 파일 filecopy.js와 같은 폴더에 존재한다면
아래 명령어를 실행하면
console.log에서 적어둔 message가 출력되면서 아래와 같이 copied.txt파일이 생성됨을 확인할 수 있습니다.
callback은 굳이 필요 없는 경우 생략해도 됩니다.
만약 copyFile이 지원되지 않는 버전이라고 한다면 아래와 같이 호출할 수도 있습니다.
// filecopy.js
const fs = require('fs');
(async () => {
fs
.createReadStream('origin.txt')
.pipe(fs.createWriteStream('copied.txt'))
.on('finish', () => {
console.log('origin.txt파일이 copied.txt파일로 복사되었습니다.');
})
})();
※ 이 경우 error의 처리가 필요한 경우에는 readstream에 대한 에러 처리와 writestream에 대한 에러처리를 별도로 선언하여 pipeline을 연결해주어야 합니다.
// filecopy.js
const fs = require('fs');
const stream = require('stream');
(async () => {
// Stream 선언
const rs = fs.createReadStream('origin.txt');
const ws = fs.createWriteStream('copied.txt');
// Stream별 이벤트 선언
rs.on('error', e => {
throw e;
})
ws.on('error', e => {
throw e;
})
ws.on('finish', () => {
console.log('origin.txt파일이 copied.txt파일로 복사되었습니다.');
})
// Pipeline 연결
stream.pipeline(rs, ws, err => {
if(err) throw e;
})
})();
만약 위의 소스 기준으로 origin.txt파일을 삭제하고 실행하면 아래와 같이 에러코드가 호출됩니다.
반응형
'개발 창고 > NodeJS' 카테고리의 다른 글
[Javascript] 이메일 유효성 검사 (1) | 2023.03.16 |
---|---|
[NodeJS] PayloadTooLargeError: request entity too large (0) | 2023.03.05 |
[React] map에서 숫자 FOR문 사용하기 (0) | 2023.02.13 |
[Puppeteer] iframe 클릭하기 (0) | 2023.01.26 |
[알고리즘] 이진트리 (B-Tree) (0) | 2023.01.25 |