• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    해결됨

로그인한 회원이 자유게시판 글 작성할 때 오류가 납니다

23.09.22 12:35 작성 23.09.22 12:59 수정 조회수 129

0

안녕하세요 강사님 !

로그인한 회원이 자유게시판에 글을 쓸 때 작성자가 존재하지 않는다는 오류가 나옵니다.

Screen Shot 2023-09-22 at 12.25.59 PM.pngScreen Shot 2023-09-22 at 12.26.20 PM.png

피그마 화면에 작성자와 비밀번호 인풋이 없어서 똑같이 비회원일 때만 보여주도록 했고 뮤테이션을 날릴 때에도 필수값이 아니라 비회원 글작성 뮤테이션을 똑같이 썼습니다. 그런데 작성자가 존재하지 않는다는 오류가 나요. 플레이그라운드에서 토큰을 넣고 똑같이 시도해봤는데 CreateBoardInput에 작성자랑 비밀번호를 다 넣어줘야 정상적으로 등록이 되더라구요.

 

Screen Shot 2023-09-22 at 12.33.22 PM.png

타입을 보면 필수가 아닌데.. 제가 놓친 부분이 어디인지 잘 모르겠습니다 ㅠㅠ 강의는 완강했습니다!

 

+댓글등록도 해보는데 댓글은 작성자가 없다는 오류 없이 정상적으로 등록되지만 user 정보가 같이 저장되지 않습니다. 저는 토큰에서 user 정보를 알아서 가져가는 줄 알았는데 그게 아닌건지, 그게 맞는데 제 코드가 잘못된건지 모르겠습니다 😂

답변 2

·

답변을 작성해보세요.

0

안녕하세요! summery님!

질문하시는 내용들을 보니, 수업을 꼼꼼히 잘 들으셔서 많은 부분을 제대로 이해하신 것 같군요!^^

답변을 드리자면,
해당 API의 게시글등록 파트는, 비회원 전용 게시글 등록API예요!
따라서, 로그인의 여부와는 상관이 없답니다!(뒤쪽 상품API의 경우에는 반대로 로그인한 유저만 작성 가능해요!)

따라서, 로그인 여부와 상관이 없으므로 작성자를 입력해 주셔야 하겠어요!


그런데 우리가 배우기를 !(느낌표)가 달려있지 않으면 필수입력이 아니라고 하였는데, 이것은 현재 플레이그라운드의 graphql 타입부분이 잘못된 것 같아요! 따라서, summery님은 제대로 이해하셨고, 잘못하신 부분은 없답니다!

조금 더 자세히 설명을 드리면 전반적인 구조는 아래와 같습니다

image

여기서, 파란색 타입체크에서는 필수가 아니라고 해놓고, 실제 뒷편 백엔드로직에서는 if문으로 검사하고 있는 것 같네요! 따라서, 결과적으로 플레이그라운드의 writer 부분에 !(느낌표)가 추가되어야 할 것 같네요!^^

summery님의 프로필

summery

질문자

2023.09.30

감사합니다!!!

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2023.09.24

안녕하세요, 인프런 AI 인턴이에요.

자유게시판에 글을 작성할 때 “작성자가 존재하지 않는다”는 오류가 발생하는 문제로 이해했습니다. 작성자와 비밀번호 인풋이 없는 상태에서 로그인한 회원이 글을 작성할 때 발생하는 오류로 보이네요.

먼저, 작성자가 존재하지 않는다는 오류는 아마 작성자 필드에 null이나 undefined 값이 전달되기 때문에 발생할 수 있는 문제일 것입니다. 이를 해결하기 위해서는 작성자 필드 값이 반드시 전달되도록 해야합니다. 앱의 플레이그라운드에서 토큰을 넣고 시도해봤을 때 작성자와 비밀번호를 모두 전달했을 때 정상적으로 등록되는 것으로 보아, 작성자 필드가 필수값으로 설정되어야 하는데 해당 부분이 제대로 설정되지 않은 것 같습니다.

또한, 댓글 작성 시 user 정보가 저장되지 않는 문제도 발생하는 것 같습니다. 토큰에서 user 정보를 가져오는 것은 맞지만, 실제로 데이터베이스에 저장되는 부분이 제대로 구현되지 않아 생기는 문제일 가능성이 있습니다. 해당 부분을 확인해보시고 필요한 정보가 제대로 저장되도록 수정해주셔야 합니다.

작성자 필드의 필수값 설정과 댓글 작성 시 user 정보 저장 부분을 확인하셔서 필요한 수정을 진행해보세요. 만약 문제가 계속 발생한다면, 구체적인 코드나 에러 메시지를 알려주시면 더 자세한 도움을 드릴 수 있습니다. 수고하세요!