일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 자바스크립트 반복문
- html 주석
- css display
- 자바스크립트 클래스
- CSS
- css3
- html 코드
- 자바스크립트 scope
- 티스토리챌린지
- 자바스크립트 생성자 함수
- 자바스크립트 async await
- javascript opreator
- javascript
- javascript closure
- 자바스크립트 프로미스
- javascript opreators
- 웹 개발 트렌드
- 자바스크립트 상속
- 자바스크립트
- css 포지션
- 자바스크립트 스코프
- front-end
- 자바스크립트 클로저
- 오블완
- 자바스크립트 연산자
- 자바스크립트 실행 컨텍스트
- css position
- HTML
- 자바스크립트 promise
- 프론트엔드
- Today
- Total
Multi Developer SuHo
[Node js] fs 모듈로 파일 시스템 처리를 통한 CRUD 제어 본문
안녕하세요~ 이번에는 Node js에서 fs (File System) 모듈을 제공해주고, fs 모듈로 파일 처리와 대용량 파일을 처리해보도록 하겠습니다.
📑목차
1. fs 모듈
1-1. fs 모듈이란?
1-2. fs 모듈 가져오기
2. fs 모듈을 이용한 CRUD 처리
2-1. 파일, 폴더 존재여부 판단하는 메서드
2-2. fs.exists( ) # 비동기식 호출
2-3. fs.existsSync( ) #동기식 호출
2-4. fs.exists # 비동기식 호출 VS fs.existsSync #동기식 호출
2-5. fs 모듈을 사용하여 폴더 생성 (Create)
2-6. 폴더 안에 파일 추가
2-7. 파일 읽어오기 (Read)
2-8. 파일 덮어쓰기 (Update)
2-9. 폴더 삭제 (Delete)
서론
먼저 본론으로 들어가기전 fs 모듈에 대해 알아볼 필요가 있겠죠? fs 모듈이 무엇인지, fs 모듈을 사용해서 어떠한 동작을 처리할 때 사용되는지 말입니다. fs 모듈을 사용하여 대용량 파일을 처리할 수 있다는 생각해보신적 있으시나요? 궁금증을 풀어보기 위해서는 본론을 보면서 이해하셔야 합니다.
본론
1. fs 모듈 (File System Module)
1-1. fs 모듈이란?
fs(File System Moudle) 로 파일 처리에 대한 내용을 작업하는 모듈입니다.
1-2. fs 모듈 가져오기
// fs 내장 모듈을 가져온다
const fs = require("fs");
2. fs 모듈을 이용한 CRUD 처리
2-1. 파일 및 폴더 존재 여부 판단 메서드
2-2. fs.exists( ) 메서드 # 비동기식 호출
+ 추가 정보
// exists() : 파일이 있는 없는지 판단
// 반환값 : boolean
// 비동기적 호출
// 매개변수로 1.path , 2. 콜백
fs.exists( ) 메서드 사용 코드
fs.exists("./fsTest", (callback) => {
console.log(callback);
// console.log("비동기식 호출중..")
})
반환값이 Boolean 타입이기 때문에 true or false를 반환합니다.
실행결과 : false
2-3. fs.existsSync( ) 메서드 #동기식 호출
+ 추가 정보
// existsSync () : 파일이 있는지 없는지 판단
// 동기식 호출
// 매개변수 1.path(경로)
// 반환값 : Boolean
fs.existsSync( ) 메서드 사용 코드
const File = fs.existsSync("./fsTest");
console.log(File);
// console.log("동기식 호출중..")
fs.existsSync( ) 메서드 또한 반환값이 Boolean 타입이라서 true or false 를 반환합니다.
실행 결과 : false
2-4. fs.exists # 비동기식 호출 VS fs.existsSync #동기식 호출
fs.exists("./fsTest", (callback) => {
console.log("비동기식 호출중..")
// console.log(callback);
})
// existsSync () : 파일이 있는지 없는지 판단
// 동기식 호출
// 매개변수 1.path(경로)
// 반환값 : Boolean
const File = fs.existsSync("./fsTest");
console.log("동기식 호출중..")
// console.log(File);
실행결과
2-5. fs 모듈을 사용하여 폴더 생성
fs.mkdir( ) 메서드 사용
fs.mkdir(path(경로), option, callback)
1.첫 번째 매개변수 - path(경로)
2.두 번째 매개변수 - option
3.세 번째 매개변수 - 콜백함수( )
fs.mkdir( )로 폴더를 생성한 코드 # 비동기식 호출
if(!File){
fs.mkdir('./test', (err) => {
if(err){
console.log(err)
}
else {
console.log("폴더 생성")
}
})
}
fs.mkdir( )로 폴더를 생성한 코드 # 비동기식 호출
에러 메세지 : Error: EEXIST: file already exists, mkdir
해석 : 해당 경로의 이미 같은 폴더가 존재한다.
해결방법 : 해당 경로의 폴더가 있는지 확인합니다.
// 오류 발생 : Error: EEXIST: file already exists, mkdir
// 오류를 해결하려면 조건문을 수정할 필요가 생김
// 동기적 호출
if(!File) {
const text = fs.mkdirSync('./test');
console.log(text);
}
console.log("실행중..")
2-6. 폴더 안에 파일 추가
fs.writeFile( )로 파일 생성
+ 추가 정보
// fs.writeFile()
// 폴더안에 파일을 추가
// 첫 번째 매개변수는 Path 경로
// 두 번째 매개변수는 파일의 담을 내용
// 세 번째 매개변수는 콜백 함수
fs.writeFile( )로 test 폴더 안에 text.js 파일을 추가한 코드 # 비동기식 호출
// 생성한 test 폴더안에 파일 생성
// fs.writeFile("path", "파일의 담을 내용", (콜백함수))
// 파일의 담을 내용을 정의
const content = `const a = 20;`
// ./test 경로안에 text.js 파일을 생성하고
// 파일의 담을 내용은 content 에 저장이 됨
// 콜백함수로 err 객체가 있고
// 오류가 발생하면 콜백함수를 실행
fs.writeFile('./test/text.js', content, (err) => {
if(err) {
console.log(err);
} else {
console.log(content);
}
})
콘솔에 출력된 content에 담긴 내용이다.
test 폴더안에 text.js 파일이 추가되는 것을 볼 수 있다.
2-7. 파일 읽어오기 (Read)
fs.readFile( ) 사용 코드 # 비동기식 호출
// fs.readFile() # 비동기식 호출
// 파일을 읽어오는데 사용되는 메서드
// 매개변수
// 1. 파일의 경로
// 2. 옵션 (파일 인코딩, 문자열 객체 등등)
// 3. 콜백함수를 받는데 콜백함수와, 파일 내용을 매개변수로 받을 수 있다.
fs.readFile('./test/text.js', "utf-8", (err, content) => {
if(err) {
console.log(err);
} else {
console.log(content);
}
})
실행 결과
fs.readFileSync( ) 파일 읽어오기 #동기식 호출
// fs.readFileSync() # 동기식 호출
// 매개변수
// 1. path(경로)
// 2. 옵션 (파일 인코딩, 문자열 객체 등등)
const sample = fs.readFileSync('./test/text.js', "utf-8");
console.log(sample);
실행결과
fs.readFile( ) 메서드와 fs.readFileSync( ) 메서드의 차이점
2-8. 파일 내용 덮어쓰기 (Update)
const content = `const a = 20;`
const content2 = `const b = 10;`
// ./test 경로안에 text.js 파일을 생성하고
// 파일의 담을 내용은 content 에 저장이 됨
// 콜백함수로 err 객체가 있고
// 오류가 발생하면 콜백함수를 실행
fs.writeFile('./test/text.js', content2, (err) => {
if(err) {
console.log(err);
} else {
console.log(content2);
}
})
2-9. 파일 및 폴더 삭제 (Delete)
fs.rm( ) # 비동기식 호출
+ 추가 정보
// 파일 및 폴더를 삭제
// fs.rm()
// 매개변수
// 1. path(경로)
// 2. 콜백함수
fs.rm('./test/text.js', (err) => {
if(err) {
console.log(err);
} else {
console.log("폴더가 삭제되었습니다.")
}
})
이렇게 실행결과를 보시면 test 폴더안에 text.js 파일이 삭제된 것을 확인할 수 있습니다.
결론
fs 모듈을 이용한 파일 및 폴더에 대한 CRUD 를 제어할 수 있었습니다.
'Node.js 기록' 카테고리의 다른 글
Node JS 버퍼(Buffer), 스트림(Stream) 개념 정리📑 (0) | 2025.02.20 |
---|---|
Node.js 란 무엇인가? (0) | 2025.02.18 |