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

jiwon_0125님의 프로필 이미지
jiwon_0125

작성한 질문수

MERN STACK 커뮤니티 : 시작부터 배포까지 알려주는 React

Post-User : 게시글 정보와 회원 정보 연동하기

로그인후 업로드 글을 쓰면 POST 400(Bad Request)에러가 발생합니다

작성

·

2.1K

1

ㅇ현재 post.js에 submit관련되어 작성된 코드입니다 ㅜ

무엇때문에 계속 에러가 잡히는지 못찾겠습니다 ㅜㅜㅜㅜ

ㅕ모델 폴더에있는 User.js에 작성된 코드입니다

 

모델 폴더에 있는 Post.js에 작성된 코드입니다

author 정보를 가져오기위해 작성하고나서 부터 에러가 시작된것 같은데 그 이후로 400번 에러가 사라지지 않고 회원가입시에도 나타납니다 

혹시나 해서 파이어베이스 계정을 확인해보면 회원가입은 진행이 되었구요 ...

뭐가 문제일까요 ㅠㅠㅠㅠㅠㅠ

답변 3

0

판다코딩님의 프로필 이미지
판다코딩
지식공유자

git 다시 올려주시면 제가 한번 확인해볼게요!

0

판다코딩님의 프로필 이미지
판다코딩
지식공유자

먼저 회원가입을 시도할 때 보내는 body에 아무런 값도 담겨있지 않습니다.

아래 코드로 수정해주세요.

    let body = {
      email: createdUser.user.multiFactor.user.email,
      displayName: createdUser.user.multiFactor.user.displayName,
      uid: createdUser.user.multiFactor.user.uid,
    };

그 이후 서버쪽 코드는 괜찮은 것 같습니다.

에러가 있는지 저장이 잘 되는지 확인해보세요.

jiwon_0125님의 프로필 이미지
jiwon_0125
질문자

아 body값을 제가 놓쳤군요 ! 수정완료 하였습니다 감사합니다 ! 

현상은 똑같은데 서버쪽에는 문제가없다면 ㅠㅠㅠ 도대체 어디인지 ..머리가 터지겠습니다....

똑같이 파이어베이스에는 회원가입이 되어있고, 몽고디비는 비어있습니다...

판다코딩님의 프로필 이미지
판다코딩
지식공유자

couter 모델에 콜렉션 이름이 couters이던데..

저는 강의 영상에서 counter라고 짓기는 했거든요?

수강생 분이 콜렉션 이름을 couters로 하면 문제는 없다만 혹시 모르니 확인해보실래요?

jiwon_0125님의 프로필 이미지
jiwon_0125
질문자

couter 이라는 작명은 찾지못했습니다 ㅜ 어디에있을까요...?
혹시 Model 폴더에 {collection : counters}     <ㅡ 이 부분을 {collection : counter} 이렇게
수정하라는 말씀이실까요?

jiwon_0125님의 프로필 이미지
jiwon_0125
질문자

수정후에도 똑같습니다 ...ㅜㅜㅜㅜㅜ

로그인 로그아웃까지는 정상적으로 되고

로그인 후에 게시물 업로드 할 경우, 회원가입 경우 400에러 발생하네요

주말 저녁에 이렇게 바쁘게 시간내주셔서 감사합니다 강사님..ㅜ

판다코딩님의 프로필 이미지
판다코딩
지식공유자

아니요... 그러니까 콜렉션 이름을 확인해달라고 했던 제 말은,

몽고db에서 사용하고 있는 콜렉션 이름과 코드의 이름이 동일한지 확인을 부탁드린 것입니다.

저희 로그인과 로그아웃은 firebase에서 담당해주고 있지만,

게시물을 올릴 때 유저 정보를 불러오는 것은 몽고디비에서 담당을 하고 있기 때문에

회원가입을 하는 순간 유저 정보가 몽고디비에 저장이 안된다면 해당 기능이 오류가 나는건 당연합니다.

jiwon_0125님의 프로필 이미지
jiwon_0125
질문자

넵 다 똑같습니다

jiwon_0125님의 프로필 이미지
jiwon_0125
질문자

혹시 몰라서 ref : Users  <- 도 해보았으나 똑같습니다

 

 

강사님이 마지막 폴더에 올려주신 소스코드로

server 폴더에 Router , Model 폴더를 똑같이 복붙해서 넣고 몽고디비도 똑같이하였고

Register 파일도 수정해주신 부분 수정하고 다했는데도 안되네요 ㅜ

구글에 찾아도 계속 문법오류(변수값 오류) 일 가능성이 있다는데 제가 잘 못찾는것 같습니다 ㅜ

 

0

판다코딩님의 프로필 이미지
판다코딩
지식공유자

에러 메세지를 확인해보면,

파이어베이스에 회원가입을 진행하고

그 정보를 몽고db에 다시 저장하는 과정에서 에러가 나는 것으로 보입니다.

 

api/user/register 경로의 서버쪽 코드를 확인해보시겠어요?

jiwon_0125님의 프로필 이미지
jiwon_0125
질문자

register쪽 코드입니다 ! 이전에 실행할때 레지스터에서는 문제가 안발생했는데 레지스터쪽 문제인가요?

판다코딩님의 프로필 이미지
판다코딩
지식공유자

첨부해주신 이미지를 확인해보면 회원가입을 진행할 때에 서버쪽에서 400번으로 응답이 되니 에러가 발생하는 것 같습니다. 몽고db에서 user는 잘 저장되던가요?

jiwon_0125님의 프로필 이미지
jiwon_0125
질문자

지금 확인해본 결과 파이어베이스만 추가되고 몽고디비 users는 추가가 안됩니다 !

판다코딩님의 프로필 이미지
판다코딩
지식공유자

넵! 몽고디비에 유저가 제대로 저장되지 않아서, 글을 등록할 때 userDB랑 연동이 안되는 것 같습니다.

jiwon_0125님의 프로필 이미지
jiwon_0125
질문자

어느 부분에서 몽고디비 에러가 나오는걸까요..? ㅠㅠㅠㅠ저는 눈씻고 봐도 못찾겟습니다,,,

판다코딩님의 프로필 이미지
판다코딩
지식공유자

서버쪽 코드를 봐야 정확할 것 같은데, (1) /api/user/register 엔드포인트로 보내는 body에 정보가 잘 저장되어 있는지 (2)Mongoose Model이 잘 구현되어 있는지 (3) 서버쪽 코드에 오타가 없는지 확인해봐야 할 것 같습니다.

jiwon_0125님의 프로필 이미지
jiwon_0125
질문자

https://github.com/usingDev/CRUD-/tree/master
깃허브 혹시 확인 부탁드려도 될까요? ㅜㅠㅜㅜ

판다코딩님의 프로필 이미지
판다코딩
지식공유자

넵 확인하고 다시 댓글 달겠습니다.

jiwon_0125님의 프로필 이미지
jiwon_0125
질문자

모델 폴더에 있는 Counter,Post,User 에 {collection : } 부분에서 colletion이라고 적은건 수정했습니다 ..!ㅜㅜ

판다코딩님의 프로필 이미지
판다코딩
지식공유자

먼저 git에 firebase config 키가 노출되어 있는 것 같습니다.

다운을 받았으니 레포는 삭제하시거나 firebase.js 파일은 삭제하는 게 좋을 것 같습니다.

jiwon_0125님의 프로필 이미지
jiwon_0125
질문자

넵 감사합니다 ! 

jiwon_0125님의 프로필 이미지
jiwon_0125

작성한 질문수

질문하기