[NODEJS] fs 파일시스템 모듈
NodeJS 를 이용하여 개발을 할 때, 생각보다(?) 자주, 잊을만 하면 사용하게 되는 파일시스템 (fs) 모듈입니다.
그래서 이참에 자주 쓰는 함수를 정리해볼까합니다.( 공식 모듈 설명 URL : https://nodejs.org/api/fs.html )
fs (파일시스템) 모듈
' fs 모듈은 표준 POSIX 기능을 근사하게 모델링 한 방식으로 파일 시스템과 상호 작용하기 위한 API 를 제공 ' 하기 위한 목적을 가진 모듈
0. 시작하기
무슨 모듈이든 사용하려면, 설치를 하고, 모듈을 선언을 해주어야겠지요. fs 모듈은 기본 제공되는 모듈이므로 설치는 필요하지 않습니다.
fs 모듈을 선언해주고 시작합니다.
var fs = require('fs');
모든 파일 시스템 작업에는 동기식과 비동기식 양식이 존재합니다. 필요에 따라 사용하면 편리하겠군요.
1. 파일 존재 확인 (exists)
파일의 존재여부를 확인하기 위한 메소드입니다.
fs.exists(path, callback)
fs.exists('/etc/passwd', (exists) => {
console.log(exists ? 'it\'s there' : 'no passwd!');
});
2. 파일 읽기 / 쓰기
파일을 새로 생성하거나, 존재하는 파일을 읽기 위한 메소드입니다.
fs.open(path[, flags[, mode]], callback)
fs.openSync(path[, flags, mode])
fs.open('myfile', 'wx', (err, fd) => {
if (err) {
if (err.code === 'EEXIST') {
console.error('myfile already exists');
return;
}
throw err;
}
writeMyData(fd);
});
fs.open('myfile', 'r', (err, fd) => {
if (err) {
if (err.code === 'ENOENT') {
console.error('myfile does not exist');
return;
}
throw err;
}
readMyData(fd);
});
3. 파일 명 변경
파일 명을 변경하기 위한 메소드입니다
fs.rename (oldPath, newPath, callback)
fs.renameSync (oldPath, newPath)
fs.rename('oldFile.txt', 'newFile.txt', (err) => {
if (err) throw err;
console.log('Rename complete!');
});
4. 디렉토리 생성 /삭제
디렉토리 생성 및 삭제를 위한 메소드입니다.
fs.mkdir(path[, options], callback)
fs.mkdirSync(path[, options])
fs.mkdir('/tmp/a/apple', { recursive: true }, (err) => {
if (err) throw err;
});
// Windows 에서는 루트 디렉토를 사용할 경우 오류가 발생하게 됩니다. ( 'c:\' )
fs.rmdir(path, callback)
fs.rmdirSync(path)
fs.rmdir('/tmp/a/apple', (err) => {
if (err) throw err;
});
5. 파일 삭제
파일 삭제를 위한 메소드입니다
fs.unlink(path, callback)
fs.unlinkSync(path)
// Assuming that 'path/file.txt' is a regular file.
fs.unlink('path/file.txt', (err) => {
if (err) throw err;
console.log('path/file.txt was deleted');
});
'SCRIPT > NODE JS' 카테고리의 다른 글
[NODEJS] 결제 API 연동하기 - 아임포트 (5) | 2019.08.27 |
---|---|
[nodejs] Linux (Centos6.x ) 에 최신버전 Nodejs 설치하기 (0) | 2019.06.24 |
[nodejs] nodeclise - 포맷터를 이용한 ejs 파일 html 스타일 적용하기 (0) | 2019.02.27 |
[nodejs] JDBC 모듈 : <node-jdbc> (0) | 2018.12.11 |
노드jS _ 안드로이드 체크 (0) | 2017.10.31 |