Node.js의 fs(파일 시스템) 모듈은 파일 시스템 작업을 위한 강력한 도구로, 서버의 파일 및 디렉터리와 상호 작용할 수 있습니다. Node.js에 내장되어 있으므로 사용하기 위해 추가로 설치할 필요가 없습니다. fs의 작동 방식과 주요 기능을 살펴보겠습니다.
fs 모듈은 표준 POSIX 기능을 중심으로 밀접하게 모델링된 방식으로 파일 시스템과 상호 작용하기 위한 API를 제공합니다. 이 모듈은 파일 읽기 및 쓰기, 디렉터리 생성 등과 같은 작업에 사용됩니다.
fs 모듈을 사용하려면 Node.js 스크립트 시작 부분에 이를 요구해야 합니다:
const fs = require('fs');
파일을 읽는 기본 방법에는 비동기식과 동기식의 두 가지가 있습니다.
이 방법은 비차단 방식입니다. 즉, 파일을 읽는 동안 프로그램 실행이 중단되지 않습니다.
fs.readFile('example.txt', 'utf8', (err, data) => { if (err) { console.error(err); return; } console.log(data); });
이 메서드는 차단됩니다. 즉, 파일을 읽을 때까지 프로그램 실행이 중지됩니다.
try { const data = fs.readFileSync('example.txt', 'utf8'); console.log(data); } catch (err) { console.error(err); }
파일 읽기와 마찬가지로 쓰기도 비동기식 또는 동기식으로 수행할 수 있습니다.
fs.writeFile('example.txt', 'Hello, World!', (err) => { if (err) { console.error(err); return; } console.log('File has been saved!'); });
try { fs.writeFileSync('example.txt', 'Hello, World!'); console.log('File has been saved!'); } catch (err) { console.error(err); }
기존 파일을 덮어쓰지 않고 콘텐츠를 추가하려면,appendFile 메소드를 사용하세요.
fs.appendFile('example.txt', '\nAppended Content', (err) => { if (err) { console.error(err); return; } console.log('Content has been appended!'); });
try { fs.appendFileSync('example.txt', '\nAppended Content'); console.log('Content has been appended!'); } catch (err) { console.error(err); }
파일을 삭제하려면 연결 해제 방법을 사용하세요.
fs.unlink('example.txt', (err) => { if (err) { console.error(err); return; } console.log('File deleted!'); });
try { fs.unlinkSync('example.txt'); console.log('File deleted!'); } catch (err) { console.error(err); }
fs.mkdir('newDir', { recursive: true }, (err) => { if (err) { console.error(err); return; } console.log('Directory created!'); });
fs.readdir('newDir', (err, files) => { if (err) { console.error(err); return; } console.log('Files in directory:', files); });
fs.rmdir('newDir', { recursive: true }, (err) => { if (err) { console.error(err); return; } console.log('Directory deleted!'); });
fs.watch 메소드를 사용하여 파일의 변경 사항을 감시할 수 있습니다.
fs.watch('example.txt', (eventType, filename) => { if (filename) { console.log(`${filename} file Changed!`); } });
Node.js는 메모리에 맞지 않을 수 있는 대용량 파일을 처리하기 위한 fs 스트림을 제공합니다.
const readStream = fs.createReadStream('example.txt', 'utf8'); readStream.on('data', (chunk) => { console.log(chunk); });
const writeStream = fs.createWriteStream('example.txt'); writeStream.write('Hello, '); writeStream.write('World!'); writeStream.end();
Node.js는 파일을 복사하는 간단한 방법을 제공합니다.
fs.copyFile('source.txt', 'destination.txt', (err) => { if (err) { console.error(err); return; } console.log('File copied successfully!'); });
fs 모듈에는 약속 기반 메서드도 있어 async/await와 같은 최신 JavaScript 기능을 더 쉽게 사용할 수 있습니다.
const fsPromises = require('fs').promises; async function readFile() { try { const data = await fsPromises.readFile('example.txt', 'utf8'); console.log(data); } catch (err) { console.error(err); } } readFile();
fs 모듈은 다재다능하며 파일 시스템과 상호 작용해야 하는 모든 Node.js 애플리케이션에 필수적입니다. 다양한 방법을 이해하고 스트림을 효율적으로 처리하며 모범 사례를 활용함으로써 Node.js에서 파일 작업을 효과적이고 안전하게 관리할 수 있는 준비를 갖추게 됩니다.
fs 모듈의 최신 정보와 추가 기능에 대해서는 공식 Node.js 문서를 참조하세요.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3