22.02.23 22:33 작성
·
397
2
multer를 사용해서 하나의 파일만 받는 메소드인 upload를 사용하고 그 안에서 req, res, err 를 받아서
console.log(res.req.file)을 코딩하실 때, 설명으로는 upload의 응답인 res에 ImageUpload.js의 요청인 req라고 설명주시면서 res.req.file를 코딩하셨는데 req.file로 ImageUpload.js의 요청을 받아오는 것까지는 이해가 되었으나, res.req.file을 코딩하시는 것은 이해가 잘되지 않았습니다. 조금 더 추가적인 설명 부탁드립니다.
답변 1
0
2022. 02. 24. 15:35
결론부터 말씀드리면,
multer는 body 객체와 file/s 객체를 request에 추가하기 때문에,
res.req.file 대신 req.file로 코딩하셔도 똑같이 동작합니다.
다만, 저희는 multer의 single을 사용하였기 때문에 "file" 이란 이름으로 키를 사용하는데,
만약 array 혹은 any등을 사용하여 여러 파일을 처리하게 된다면 "files"란 배열로 데이터를 받게 되는데,
이 과정에서 req.file로 접근 할 시 diskstorage에 저장되는 파일명을 반환하지 못한다는 에러가 있는 것으로 압니다.
(https://github.com/expressjs/multer/issues/302)
특별한 이유가 있다기 보다는, 언어 혹은 도구를 사용하는 약속이기에 관습적으로 저렇게 코딩한 것 같습니다.
제가 설명이 부족했습니다. (__)
2022. 02. 24. 17:29
답변 감사드립니다! 사실 코딩도 관습이고 루틴이 있다는 걸 알고는 있는데 혼자 프로젝트를 진행한다고 생각하면 무조건 이해를 해야한다고 생각해서 하나하나 여쭤보는거 같습니다..!
강의에서도 강사님이 이해하기 보다는 이런 약속이니 루틴처럼 사용하면 된다는 뉘앙스로 말씀하신 부분을 조금 더 새겨들어야겠습니다..! 매번 답변 감사드려요!