인프런 커뮤니티 질문&답변

집중하기 매우 어려움님의 프로필 이미지
집중하기 매우 어려움

작성한 질문수

[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지

multer 사용하기

컨트롤러에서 multer 사용 질문

해결된 질문

작성

·

341

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);

감사합니다.

집중하기 매우 어려움님의 프로필 이미지
집중하기 매우 어려움

작성한 질문수

질문하기