Will find a way
NodeJs fs 모듈 (파일 시스템) 본문
fs 모듈이란
파일을 읽거나 쓰거나 생성 삭제 등을 할 때 사용하는 내장 모듈 파일시스템
내장 모듈이기 때문에 별도의 라이브러리 설치 없이 사용이 가능하다.
모듈 불러오기
const fs = require("fs");
비동기 함수 vs 동기 함수
fs 모듈에서 제공하는 비동기 메서드는 마지막 인자로 콜백함수를 받고 아무 값도 반환하지 않는다.
반면에 동기 메서드는 결과값을 반환(return)하며 예외를 일으킬 수 있다.
(동기 메서드는 sync로 끝난다. 동기 / 비동기 메서드 구분이 가능)
폴더가 있는지 없는지 확인하는 법 (existsSync)
let folder = fs.existsSync("test");
console.log(folder);
// test라는 폴더가 있으면 true 없으면 false
폴더 생성 (mkdir)
폴더가 없다면 생성하는 함수를 만들어 보자
if( !folder ) {
// 비동기적으로 실행되는 메서드
// 매개변수로 폴더를 만들 경로를 전달
fs.mkdir("test", (err) => {
if(err){
console.log(err);
console.log("에러 발생");
} else {
console.log("test 폴더가 정상적으로 생성됨");
// 폴더가 생성되고 처리해야할 내용
}
})
const text = fs.mkdirSync("Test");
console.log("동기");
}
파일 생성 (writeFile)
경로를 지정하여 파일을 만들어 보자
// writeFile : 파일을 쓰기) 파일에 데이터를 포함하여 파일을 만들어준다.
// write("파일 생성 경로 및 파일 이름", "파일에 작성할 내용", "함수")
fs.writeFile("Test/text.txt", "Hello world", (err) => {
if(err){
console.log(err);
} else {
console.log("파일이 만들어 졌음")
}
})
fs.writeFileSync("TGest/text.txt", "Hello World2");
console.log("파일이 잘 만들어 졌음");
만약 파일이 이미 있다면 내용을 수정해준다.
파일 읽기 (readFile)
// 파일을 읽어오자
// 전달한 익명함수의 매개변수 순서가 에러 결과 순으로
fs.readFile("/test/text.txt", "utf8", (err, data) => {
if(err){
console.log(err);
} else {
console.log(data);
}
})
// 동기적으로 실행
// 결과를 반환하는 방식
// 밑에 함수가 끝나고 결과
let data = fs.readFileSync("Test/text.txt", "utf8")
console.log(data);
파일 삭제 (rm)
// recursive 삭제할 때 옵션으로 폴더안에 있는 내용까지 삭제
fs.rm("test", { recursive: true }, (err) => {
if(err){
console.log(err);
} else {
console.log("폴더 삭제 완료");
}
})
'BackEnd > NodeJs' 카테고리의 다른 글
NodeJs에서 MySql 외장 모듈 설치 사용 (0) | 2024.07.06 |
---|---|
[NodeJs] 템플릿 엔진 EJS 에 대해서 (0) | 2024.06.29 |
3-way-handshake 코드 구현 (0) | 2024.06.18 |
스트림(Stream) 사용 예제 (0) | 2024.06.12 |
버퍼 (Buffer) / 스트림 (Stream) (1) | 2024.06.11 |