• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    해결됨

컨트롤러에서 multer 사용 질문

22.04.07 17:57 작성 조회수 266

0

안녕하세요. 매일 노고많으십니다.
 
const uploadNone = multer();
router.post("/write", uploadNone.none(), (req, res, next) => {
  console.log(req.body);
})
multer는 (req, res) 전에 클라이언트 요청을 해석하여 req로 넣어주는 걸로 알고 있습니다.
 
// 컨트롤러
const uploadNone = multer();
exports.noticeWrite = uploadNone.none(), async (req, res, next) => {
  console.log(req.body);
  res.end();
};
// 라우터
const { noticeWrite } = require("../controllers/notice");
router.post("/write", isLoggedIn, noticeWrite);
컨트롤러에서 처리하려고 (req, res) 요청 전에 넣어주니 라우터 응답이 안돼서요. 어쩔 수 없이 라우터에서 적어줘야 하는 건지 모르겠습니다.
 
질문. 컨트롤러에서 multer 사용하는 방법이 궁금합니다!
 

답변 1

답변을 작성해보세요.

0

noticeWrite = async (req, res, next) 꼴이어야 합니다.

uploadNone.none()은 컨트롤러가 아닌 라우터에서

isLoggedIn, uploadNone.none(), noticeWrite

순으로 넣으시면 됩니다.

multer는 라우터에서만 사용 가능하단 말씀이시죠?

컨트롤러에서도 쓸 수 있긴 한데 커스텀미들웨어 적용법을 쓰셔야합니다.

// 컨트롤러
const multer = require("multer");
exports.uploadNone = multer();
exports.noticeWrite = async (req, res, next) => {
  console.log(req.body);
  res.end();
};
// 라우터
const { uploadNone, noticeWrite } = require("../controllers/notice");
router.post("/write", uploadNone.none(), noticeWrite);

감사합니다.