프론트엔드-코드/Node.js

프로젝트 폴더에 폴더 생성

sdafdq 2023. 10. 6. 14:10
const fs = require("fs");

const checkDir = (path, callback) => {
  fs.stat(path, (err, stats) => {
    if (err && err.code === "ENOENT") return callback(null, true);
    if (err) return callback(err);
  });
};

const currentPath = __dirname;        //__dirname이 현재 위치를 알려주는 기본제공으로 알려주는 변수
let path = `${currentPath}/test`;

checkDir(path, (err, isTrue)=>{
  if(err) return console.log(err);
  if(isTrue){
    console.log('이미 동일한 디렉터리가 있습니다. ');
    path = `${currentPath}/test-new`;
  }
  fs.mkdir(path, (err)=>{
    if(err) console.log(err);
    console.log(`${path} 경로로 디렉터리를 생성했습니다.`)
  })
});

fs는 파일 시스템과 관련된 그런 모듈인 듯

 

fs.stat()이  파일에 대한 정보를 알 수 있다.

fs.stat(경로, 콜백(에러, 상태들))

이렇게 경로를 줘서 어떤 파일이나 폴더에 대한 상태를 알 수 있고, 콜백을 넣을 수 있는데, 거기에 내가 줬던 경로의 파일에 대한 정보와 에러가 나면(예 : 파일이 없다던지) 그 에러에 대한 정보를 자동으로 넣어준다.

 

콜백은 그 에러들이나 상태들을 활용하거나 판단 해 필요한 로직을 수행하게끔 콜백함수를 줄 수 있다.

 

fs.mkdir은 fs.mkdir(경로, 콜백)

디렉토리를 만드는 것이다. fs.mkdir(경로, 콜백(err)) 이렇게 에러를 자동으로 넣어준다.

콜백 부분은 에러날 시 수행할 로직을 담아줄 수 있게끔 한듯 하다.

 

__dirname은 현재 경로인 듯. 현재 내 파일 즉, js가 있는 위치.

__filename은 그 경로에다 파일이름까지.

 

 

이거 좀 복잡하게 짠 듯..

 

 

'프론트엔드-코드 > Node.js' 카테고리의 다른 글

파일 fs  (0) 2023.10.11
프로젝트 폴더에 파일 생성 -미완  (0) 2023.10.06
서버 띄우기  (0) 2023.10.05
exports, require commonJS 문법  (0) 2023.10.04
favicon  (0) 2023.09.06