TIL Node.js 폴더 생성

윤성민·2020년 10월 6일
0

기존의 폴더를 .gitignore를 하여 디플로이시 이미지를 저장하는 디렉토리가 업로드 되지 않아 이미지가 저장되지 않는 문제가 발생하였다.
다음과 같은 코드로 폴더가 없을 때, 생성하도록 하였지만 오류가 발생하였다.

fs.readdir('public/v1/uploads', (error) => {
  // uploads 폴더 없으면 생성
  if (error) {
    fs.mkdirSync('public/v1/uploads');
  }
});

node 서버가 실행될 때, fs로 'public/v1/uploads' 디렉토리를 읽지 못해 에러가 발생하면 폴더를 만들어라! 라는 명령을 주었지만, 실행되지 않았다.
그 이유는 'public/v1/uploads'의 상위 디렉토리인 'public/v1/ 가 없어 에러가 발생한 것이다. 이를 재귀로 구현해야 하는지 고민하던 찰나, 검색을 통해 { recursive: true } 이러한 옵션으로 손쉽게 폴더를 만들 수 있다는 것을 알게 되었다.

fs.readdir('public/v1/uploads', (error) => {
  // uploads 폴더 없으면 생성
  if (error) {
    fs.mkdirSync('public/v1/uploads',  { recursive: true });
  }
});

recursive: true 옵션을 주게 되면, 상위 디렉토리가 없더라도 한번에 생성할 수 있게 해준다.
이 기능은 Node.js 10.12 부터 생긴 기능이다.

profile
기록은 기억보다 강하다.

0개의 댓글