[Node.js] object Undefined Error

    에러 메세지

    Error: Route.get() requires a callback function but got a [object Undefined]

    이 에러 메세지를 해석해보면,

    Route의 get 메소드는 callback function가 필요했지만, 정의되지 않은 객체가 들어와있어서 오류가 났다. 라는 뜻이다. 

     

    `정의되지 않은 객체` 라는 말에서 짐작할 수 있듯이 다른 곳에서 불러온 변수를 사용하려고 했을때 오타가 나서 에러가 났을 것이라 짐작했다. 그래서 에러 메시지에서 흰색으로 표시되어있는 page.js 파일에 들어가봤다. 

    error message 01

    여기서 주목해야 할 부분은

    이렇게 흰색으로 표시된 마지막 부분이다.

     

    흰색으로 뚜렷하게 표시된 마지막 줄 메세지를 보면 된다. 

    command키와 주소 부분을 함께 클릭하게 되면 저 페이지로 들어갈 수 있어 확인하였다. 

    그 중에서도 16번째 줄에서 오류가 났다는 말이므로 16번째 줄을 주목하자. 

    page.js

    16번째 줄을 주목하면 isNotLoggedIn 이나 renderJoin 둘 중 하나가 잘못되었음을 추측할 수 있다. 

    하지만 오타라고 여길 만한 부분이 없는 정상 상황이었기에, 원본파일, 즉 isLoggedIn과 isNotloggedIn을 가지고 있던 원래 파일인 ../midldlewares 폴더의 파일에 들어가서 확인해주었다. (이도 마찬가지로 command 키와 click 이 함께라면 더 빠르게 작업 가능하다.)

    middlewares/index.js

    다른 부분은 살필 필요가 없다. 그냥 Name 부분만 집중해서 오타를 찾으면 된다. 

    보12번째 줄에 isNotLoggenIn 이라 오타가 나있는 부분이 원인임을 찾아냈고 이를 제대로 isNotLoggedIn 로 수정해주면 된다. 

     

     

     

    그렇다.

    생각보다 프로그래밍에서는 오타로 나는 에러들이 굉장히 많다. 이에 시간을 빼앗기지 않도록 조심할 필요가 있다. 

    'Backend > Node.js' 카테고리의 다른 글

    [Node.js] logout은 꼭 post 메서드를 써야 할까  (0) 2023.02.21

    댓글