개발/Node.js

[Error][Express][Flutter] TypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string. Received undefined

leebera_ 2022. 6. 27. 20:33

flutter에서 express서버로 image를 전송한 뒤 multer 미들웨어를 통해 받을 때 위 에러가 발생했다.

위 에러가 발생하면 서버가 종료되었다가 다시 실행되어 flutter에선  아래 에러를 뱉어낸다.

Unhandled Exception: Connection closed before full header was received

통신이 다 끝나기도 전에 서버가 재시작되어 발생한다고 볼 수 있다.

 

문제점

const storage = multer.diskStorage({
    destination: (req, file, callback) => {
        callback(null, __dirname + '/target/dir');
    },
    filename: (req, file, callback) => {
        callback(null, file.filename);
    }
});

에러 발생 원인은 filename에서 callback의 두번째 매개변수에 보이는 file.filename을 써서 발생했다.

정확한 것은 추후에 알아보고 추가 예정

 

 

해결방법

filename대신 fieldname 또는 originalname을 사용하면 된다.