코다닥
237
2021-07-24 21:50:33
3
194

401 error를 받았을때, data를 줄 수 있는 방법이 없나요?


logIn: asyncHandler(async (req, res) => {
const { email, password } = req.body;

if (password.length < 8) {
res.status(401);
throw new Error("패스워드 짧음");
}

제가 위와 같은 식으로 패스워드 길이가 짧을때는 401 에러를 주었습니다.
다만, 제가 하고 싶은건 클라이언트(리액트 사용 중)쪽에서, 패스워드가 짧다면? alert를 해주려고
하는데요.

그래서 생각했던게, 위의 data === undefined 라면? alert를 해준다라고 했는데, 안되더라구요.

그래서 떠오른게, 401 에러 이후에 res.status(401).send({err: new Error()}
이렇게 err를 객체로 보내서 data.err가 있다면? alert를 해주려고 합니다.

이 아이디어가 맞는지 틀리는지는 모르겠지만,
일단, 401 에러. 즉 post요청 자체가 실패했을 경우에도 어떠한 data값을 보낼 방법이 있을까요?
0
  • 답변 3

  • 카시와기유키
    677
    2021-07-24 22:16:14

    그 아이디어대로 해서, 클라이언트에서 response 의 status 를 조회하면 될 것 같네요.

    다만 패스워드 체크는 리액트를 사용하시니 클라이언트에서 바로바로 체크해도 괜찮을듯하네요.

  • sitonik
    367
    2021-07-24 22:23:05

    보통의 경우, validation check를 서버에서 한다면 서버의 부담이 커지기 때문에 서버 쪽에서 하지 않습니다. 

    (다만, 아이디의 중복 체크 같은 경우 어쩔 수 없이 서버와 통신을 해야 합니다)

    그래서 대부분 클라이언트 단에서 체크를 하며, 클라이언트 단을 리액트로 사용 중이라고 하셨으니

    검색하시면 정말 많은 예제가 널려 있습니다. 심지어 react validation 라이브러리도 있습니다.


    결론. 굳이 서버에서 validation check를 하지말고 클라이언트 단에서 할 수 있는 일은 클라이언트 단에서

    해결하여 서버에 부담을 주지 말자 입니다.

  • 코다닥
    237
    2021-07-24 22:28:20

    답변해주셔서 감사합니다. 도움이 많이 된 거 같아요

    -1
  • 로그인을 하시면 답변을 등록할 수 있습니다.