Node.js에서 파일 시스템(File System)은 파일과 디렉토리를 다루기 위한 많은 기능을 제공하는 중요한 모듈입니다. 파일 시스템 모듈을 통해 파일을 읽고, 쓰고, 수정하고, 삭제하고, 디렉터리를 만들고 관리할 수 있습니다. 이 기사에서는 Node.js 파일 시스템의 다양한 사용법과 일반적인 시나리오에 대해 자세히 설명합니다.
파일 시스템 모듈 가져오기
filesystem 모듈을 사용하려면 먼저 가져와야 합니다. Node.js에서 파일 시스템 모듈이 호출되고 fs
다음 명령문을 사용하여 가져올 수 있습니다.
const fs = require('fs');
도입 후 fs
객체를 사용하여 파일 시스템의 다양한 메서드를 호출할 수 있습니다.
파일 읽기
Node.js는 파일을 읽는 여러 가지 방법을 제공하며 가장 일반적인 방법은 fs.readFile()
이 방법을 사용하는 것입니다. 이 메서드는 파일 경로와 콜백 함수라는 두 가지 매개 변수를 받습니다. 콜백 함수의 매개변수에는 가능한 오류 메시지와 파일 내용이 포함됩니다.
다음은 간단한 예입니다.
const fs = require('fs');
fs.readFile('file.txt', 'utf8', (err, data) => {
if (err) throw err;
console.log(data);
});
위의 예에서는 이름이 지정된 파일을 읽고 file.txt
인코딩 형식을 utf8
. 콜백 함수에서 파일의 내용을 출력합니다. 오류가 발생하면 를 throw
통해 예외를 발생시킵니다.
그 외에도 (동기적으로 파일 읽기) 및 (파일 스트림 읽기)와 fs.readFile()
같이 파일을 읽는 몇 가지 다른 방법이 있습니다 . 실제 필요에 따라 적절한 방법을 선택하십시오.fs.readFileSync()
fs.createReadStream()
파일 쓰기
파일 읽기와 유사하게 Node.js는 파일을 작성하는 여러 가지 방법도 제공합니다. 가장 일반적인 방법은 fs.writeFile()
방법을 사용하는 것입니다. 이 메서드는 파일 경로, 쓸 내용 및 콜백 함수의 세 가지 매개 변수를 받습니다.
다음은 간단한 예입니다.
const fs = require('fs');
fs.writeFile('file.txt', 'Hello, World!', (err) => {
if (err) throw err;
console.log('File has been written.');
});
위의 예에서는 file.txt
이라는 파일에 문자열을 썼습니다 'Hello, World!'
. 콜백 함수에서 쓰기가 성공했다는 프롬프트 메시지를 출력합니다. 오류가 발생하면 를 throw
통해 예외를 발생시킵니다.
그 외에도 (파일에 추가) 및 (파일에 스트림) fs.writeFile()
과 같이 파일에 쓰기 위한 몇 가지 다른 방법이 있습니다 . 실제 필요에 따라 적절한 방법을 선택하십시오.fs.appendFile()
fs.createWriteStream()
파일 이름 변경 및 삭제
Node.js 파일 시스템 모듈은 파일 이름 바꾸기 및 삭제 방법도 제공합니다.
파일의 이름을 바꾸려면 fs.rename()
이 방법을 사용할 수 있습니다. 이 메서드는 원래 파일 이름과 대상 파일 이름의 두 가지 매개 변수를 받습니다. 다음은 간단한 예입니다.
const fs = require('fs');
fs.rename('oldfile.txt', 'newfile.txt', (err) => {
if (err) throw err;
console.log('File has been renamed.');
});
위의 예에서 이름이 oldfile.txt
지정된 파일 의 이름을 newfile.txt
. 콜백 함수에서 이름 바꾸기가 성공했다는 프롬프트 메시지를 출력합니다. 오류가 발생하면 를 throw
통해 예외를 발생시킵니다.
파일을 삭제하려면 fs.unlink()
이 방법을 사용할 수 있습니다. 이 메서드는 삭제할 파일의 이름이라는 하나의 매개 변수를 받습니다. 다음은 간단한 예입니다.
const fs = require('fs');
fs.unlink('file.txt', (err) => {
if (err) throw err;
console.log('File has been deleted.');
});
위의 예에서 이름이 file.txt
. 콜백 함수에서 성공적인 삭제 메시지를 출력합니다. 오류가 발생하면 를 throw
통해 예외를 발생시킵니다.
디렉토리 작업
파일 작업 외에도 Node.js 파일 시스템 모듈은 디렉터리 생성, 읽기 및 삭제를 위한 메서드를 제공합니다.
디렉토리를 생성하기 위해 fs.mkdir()
메소드를 사용할 수 있습니다. 이 메서드는 디렉터리 이름과 권한(선택 사항)이라는 두 가지 매개 변수를 받습니다. 다음은 간단한 예입니다.
const fs = require('fs');
fs.mkdir('mydir', (err) => {
if (err) throw err;
console.log('Directory has been created.');
});
위의 예에서는 mydir
이라는 디렉토리를 만들었습니다. 콜백 함수에서 성공적으로 생성되었다는 프롬프트 메시지를 출력합니다. 오류가 발생하면 를 throw
통해 예외를 발생시킵니다.
디렉토리의 파일과 하위 디렉토리를 읽으려면 fs.readdir()
이 방법을 사용할 수 있습니다. 이 메서드는 디렉터리 이름과 콜백 함수라는 두 가지 매개 변수를 받습니다. 다음은 간단한 예입니다.
const fs = require('fs');
fs.readdir('mydir', (err, files) => {
if (err) throw err;
console.log(files);
});
위의 예에서 명명된 디렉터리를 읽고 mydir
디렉터리의 모든 파일과 하위 디렉터리를 인쇄합니다. 오류가 발생하면 를 throw
통해 예외를 발생시킵니다.
디렉토리를 삭제하려면 fs.rmdir()
메서드를 사용할 수 있습니다. 이 메소드는 삭제할 디렉토리의 이름이라는 하나의 매개변수를 받습니다. 다음은 간단한 예입니다.
const fs = require('fs');
fs.rmdir('mydir', (err) => {
if (err) throw err;
console.log('Directory has been deleted.');
});
위의 예에서는 mydir
이라는 디렉터리를 삭제했습니다. 콜백 함수에서 성공적인 삭제 메시지를 출력합니다. 오류가 발생하면 를 throw
통해 예외를 발생시킵니다.
파일 시스템 작업에 대한 일반적인 시나리오
파일 시스템 모듈은 실제 응용 프로그램 개발에서 많은 일반적인 사용 시나리오를 가지고 있습니다.다음은 몇 가지 예입니다.
파일 업로드 및 다운로드
웹 개발에서 파일 업로드 및 다운로드는 매우 일반적인 요구 사항입니다. 파일 시스템 모듈을 통해 파일 업로드 및 다운로드 기능을 쉽게 구현할 수 있습니다. fs.readFile()
예를 들어 사용자가 업로드한 파일을 읽어서 fs.writeFile()
서버에 저장하는 방법을 사용할 수 있습니다 . 사용자가 파일을 다운로드해야 하는 경우 fs.createReadStream()
이 메서드를 사용하여 파일을 사용자에게 스트리밍할 수 있습니다.
파일 백업 및 복원
데이터 관리 및 시스템 유지 관리에서 파일 백업 및 복구는 매우 중요한 작업입니다. 파일 시스템 모듈을 통해 파일 백업 및 복구 기능을 구현할 수 있습니다. fs.createReadStream()
예를 들어 원본 파일을 스트리밍하는 방법과 fs.createWriteStream()
파일을 백업 디렉터리로 스트리밍하는 방법을 사용할 수 있습니다 .
벌채 반출
응용 프로그램에서 로깅은 매우 중요합니다. 파일 시스템 모듈을 통해 후속 분석 및 문제 해결을 위해 로그 정보를 파일에 기록할 수 있습니다. fs.appendFile()
예를 들어 로그 파일에 로그 정보를 추가하는 방법을 사용할 수 있습니다 .
요약하다
Node.js 파일 시스템 모듈은 파일과 디렉터리 읽기, 쓰기, 수정 및 삭제를 쉽게 처리할 수 있는 풍부한 기능과 메서드를 제공합니다. 단순한 파일 읽기 및 쓰기든 복잡한 디렉토리 작업이든 파일 시스템 모듈은 우리의 요구를 충족시킬 수 있습니다. 파일 시스템 모듈을 적절하게 사용하면 다양한 공통 시나리오를 구현하여 애플리케이션 기능과 성능을 향상시킬 수 있습니다. 이 글이 Node.js 파일 시스템을 깊이 이해하고 실제 프로젝트에서 유연하게 사용할 수 있도록 도움이 되었으면 합니다.