fetch랑 미들웨어랑 type 에러에 대해서 궁금한게 있어요

안녕하세요 방구석 개발자 입니다. 2~3일은 해본거 같은데 방법을 이제는 도저히 모르겠네요

JWT 로 로그인을 구현하려고 하고 있고 궁금한건 3가지가 있습니다.
1

인터넷을 참고하면서 만들다 보니까 post 방식이 이런식이 되었는데.
router.post(“주소”, (req, res) => {
소스 코드
})
이런식으로 하면 정상적으로 작동을 안하더라구요. 그래서 왜 그런지도 모르고
router.post(“주소”, upload,(req, res) => {
소스 코드
})
upload 라는 미들웨어를 쓰고 있습니다. 사실 필요가 없는데 빼면 안되서 어떻게 해야하면 되는지 모르겠네요.

두번째로 궁금한 것은 위의 소스 코드를 보면 데이터베이스에서 result라는 변수로 데이터베이스를 긁은 값을 가져오는데 여기서 아이디 값을 추철하려고 result.rows[0].user_id 라는 방식을 사용했습니다.

그런데 콘솔을 보면 TypeError: Cannot read property ‘user_id’ of undefined 라는 에러메시지를 반환하네요. 신기한건 작동은 잘 합니다. 왜 에러 메시지가 나오는지는 잘 모르겠습니다.

마지막으로 궁금한 것은 로그인시 아이디와 비밀번호 값을 db에 저장되어 있는 값과 비교한 후 맞으면 아이디 값을 JWT에 담아서 클라이언트로 보내주려고 합니다. 그런데 클라이언트가 받지를 못하는거 같습니다. 로그가 뜨는것 보면 날라가는거 같기는 하는데 클라이언트가 전혀 fetching을 하지 못하네요

그동안 클라이언트에서는 get방식으로만 받아왔어서 post방식으로 받으려고 하니까 전혀 모르겠습니다. 구글에게 물어봐서 클라에서 서버로 보내는 방법만 알려주고 잘 모르겠네요.
2

도와주세요!

사진이 웹상에는 잘려있지만 다운받거나 하면 잘 보여요!

첫번째 미들웨어 문제를 해결했습니다 !

놀랍게도 해더에 들어있는 content-length가 문제였습니다.!

3번째 문제도 해결한거 같습니다. JSON.stringify 한다음에 이걸 다시 JSON.parse하니까 제이슨으로 인식해서 해결됬네요. 객체를 한번에 제이슨으로 못바꾸고 스트링을 거쳐가는게 좀 그렇지만 그래도 해결됬습니다.