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

D_One님의 프로필 이미지
D_One

작성한 질문수

React로 NodeBird SNS 만들기

5-7. 회원가입 컨트롤러 만들기

질문이여

작성

·

106

0

리덕스사가를 통해서, 

회원가입 액션을 백엔드로 보냈어요. 

현재, 같은 아이디가 있을때, 백엔드에서 같은 아이디가 있다고 에러를 보내주는걸 구현 하고 있는데요. 

백엔드/ routes 

      if(exUser){
            return res.status(403).send({error:'같은아이디있음'});
       }

 이런식으로, error 라는 객체안에 "같은아이디 있음 "을 

saga 에서 다시 받고 싶어요 .. 

front/saga 

function* signUp(action){
   
    try {

       yield call(signUpAPI,action.data);
       yield put(sign_Up_Success_Action());
        
    } catch (e) {
        console.error(e);
        yield put(sign_Up_Fail_Action(e.error));

    }
  
  
}

이런식으로 받으려고 하는데, 

error라는 객체는 안오고, 

그냥 진짜 에러가 console.log 가 찍히네요,, 

POST http://localhost:3075/user/signUp 403 (Forbidden)

그런데 또 network 에서 보면은 , preview 에는

  1. {error: "A userId already exits"}
    1. error"A userId already exits"
  2. 이렇게 정상적으로 찍히는데, 무엇이 문제인가요...

지금 이게 ,return res.status(403).send({error:'같은아이디있음'}); 프론트 엔드로 보내는게 맞지않나요??

서로 로컬 서버가 달라서 못 받는걸까요/? 그래서, saga쪽에서는 진짜 error 가 낫으니, error를 표현을 해주는걸까요??

어떻게 동작하는지 잘 모르겠네요...

답변 1

0

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

 일단 에러 객체의 구조를 보고싶다면 console.error 대신에 console.dir(e) 로 찍는 게 맞습니다.

console.dir로 찍으면 보실 수 있을 겁니다. 또한, res.send 대신 res.json을 사용하세요.

D_One님의 프로필 이미지
D_One

작성한 질문수

질문하기