더북(TheBook)

multer 함수의 인수로 설정을 넣습니다. storage 속성에는 어디(destination)에 어떤 이름(filename)으로 저장할지를 넣었습니다. destinationfilename 함수의 req 매개변수에는 요청에 대한 정보가, file 객체에는 업로드한 파일에 대한 정보가 있습니다. done 매개변수는 함수인데, 첫 번째 인수에는 에러가 있다면 에러를, 두 번째 인수에는 실제 경로나 파일 이름을 입력하면 됩니다. reqfile의 데이터를 가공해서 done으로 넘기는 형식입니다.

현재 설정으로는 uploads라는 폴더에 [파일명+현재시간.확장자] 파일명으로 업로드하고 있습니다. 현재 시간을 넣어주는 이유는 업로드하는 파일명이 겹치는 것을 막기 위함입니다.

limits 속성에는 업로드에 대한 제한 사항을 설정할 수 있으며, 파일 크기(fileSize, 바이트 단위)는 5MB로 제한해두었습니다.

다만 앞의 설정을 실제로 활용하려면 서버에 uploads 폴더가 꼭 존재해야 합니다. 없다면 직접 만들어주거나 다음과 같이 fs 모듈을 사용해서 서버를 시작할 때 생성합니다.