1. 오류
nodejs 모듈 fileSystem의 rmdir 기능을 사용했다.
코드는 아래와 같다.
fileSystem.rmdir(`./images/${insertItem.option.forkHistoryId}/${insertItem.item.itemId}`, {recursive: true},()=>{})
그러면 아래와 같은 에러가 발생한다.
(node:498071) UnhandledPromiseRejectionWarning: TypeError [ERR_INVALID_CALLBACK]: Callback must be a function
at makeCallback (fs.js:136:11)
at Object.rmdir (fs.js:671:14)
at router.get (/ServerCrwal.js:499:16)
at Layer.handle [as handle_request] (/node_modules/express/lib/router/layer.js:95:5)
at next (/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/node_modules/express/lib/router/layer.js:95:5)
at /node_modules/express/lib/router/index.js:281:22
at Function.process_params (/node_modules/express/lib/router/index.js:335:12)
at next (/node_modules/express/lib/router/index.js:275:10)
(node:498071) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 1)
(node:498071) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
2. 원인
버전에 맞지 않는 구문을 사용해서 그렇다.
rmdir을 recursive 옵션 없이 사용하면 잘 작동하는데 문제가 발생한 환경의 node 버전은 10.x 버전이었다. 그리고 인터넷에 올라와있는 예시는 거의 12버전 이상에서 작동하는 코드들이다.
왼쪽이 10.x 구문, 오른쪽이 12.x 구문이다.
문제가 발생했다면 해당 환경해서 node -v로 버전을 확인해보고 12버전이상인지 확인해보자.
3. 해결방법
코드상의 문제는 없기 때문에 node 버전을 업그레이드 했다.
우분투 명령어
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs
데비안 명령어
curl -sL https://deb.nodesource.com/setup_12.x | bash -
apt-get install -y nodejs
버전 업글하고 하면 잘된다.
'JS > Nodejs' 카테고리의 다른 글
카카오톡 알림톡 API - nodejs (0) | 2021.09.09 |
---|---|
Nodejs axios 요청 무응답 (0) | 2021.08.13 |
nodejs axios writestream 파일 다운로드 (0) | 2021.05.10 |
nodejs axios readstream 파일 업로드 (0) | 2021.05.10 |
Nodejs Error: Cannot find module 'ejs' (0) | 2020.09.05 |