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

1-blue님의 프로필 이미지

작성한 질문수

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

multer 사용하기

router.post()오류 질문입니다.

21.03.01 12:22 작성

·

129

0

안녕하세요. 실습하다가 에러가 생겨서 질문드립니다.

현재 책이랑 강의 필요한 부분보면서 공부 중입니다.

routes/port.js에서 router.post()를 호출할때 인수로

('/', isLoginedIn, upload2.none(), (req, res, next) => {}); 이런식으로 주는데 저는 이 코드를 실행하면  Route.post() requires a callback function but got a [object Undefined]에러가 납니다. 어느정도 찾아보니까 3번째 인수자리에 callback함수가 와야하는데 콜백이 아닌게 와서 에러가 나는건데 제로초님 강의랑 책을보면 같은형식으로 사용해도 에러가 안나고 잘실행되기에 제가 앞에서 뭔가를 잘못했는지 궁금해서 질문드립니다. 사소한변수명이나 파일명빼고는 코드를 거의 같게만들어서 코드는 책이랑 같다고 보셔도 무방합니다.

아 그리고 혹시 router.get()같은 함수의 정확한 명세서(?)같은걸 보려면 어떤방식으로 찾아야할까요? 구글에 검색을 해봐도 대부분 .get('url', callback)형식으로만 나오고 .get('url', middleware, callback)같은 형식은 안보여서 질문드립니다.

아 혹시추가로 cookie의 connect.sid값을 로그아웃하는즉시 삭제하는 방법도 있을까요? 물론 다시 로그인하면 새로운값이 들어가서 상관은없지만 궁금해서 질문드립니다.

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

2021. 03. 01. 12:29

1. isLoggedIn require 어떻게 하셨나요? 미들웨어랑 콜백이 다른게 아닙니다. 콜백도 미들웨어입니다.

2. res.clearCookie('connect.sid')로 지울 수 있습니다. 다만 옵션을 몇개 더 넣어야 지울 수 있습니다. 옵션은 애플리케이션 탭에서 확인해야합니다.

1-blue님의 프로필 이미지
1-blue
질문자

2021. 03. 01. 17:45

아 다시 코드읽어보니 콜백이네요...

에러는 변수명을 서로 다르게적어서 undefined가와가지고 에러난거였네요.. 애매하게 알고 넘어가서 에러메시지보고도 못찾았던것같습니다. 답변감사합니다.

원래 에러났을때는 /post로 post요청이 왔을경우에는 앞에서 로그인확인처리를 해놔서 router.post에서 로그인확인처리를 하지않아도 전체적인 흐름에는 지장이 없을것같아서 잠시 빼놓고 실행했었습니다. 감사합니다.

1-blue님의 프로필 이미지

작성한 질문수

질문하기