• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

node.js 로그인 기능을 async로 변경했는데 json 출력값이 이상해요

23.11.07 15:19 작성 조회수 108

0

안녕하세요.

따라하며 배우는 노드, 리액트 시리즈 12강을 듣고 async를 이용하여 로그인 코드를 다음과 같이 변경 했습니다.

app.post('/login', async (req, res) => {
  User.findOne({email:req.body.email}).then((user)=>{
    if(!user){
      return res.json({
        loginSuccess:false,
        message:"제공된 이메일에 해당하는 유저가 없습니다."
      })
    }
    user.comparePassword(req.body.password, (err, isMatch)=>{
      if(err) return res.status(400).send(err);
      if(!isMatch) return res.json({ loginSuccess:false, message:"비밀번호가 틀렸습니다."})
      
      user.generateToken((err, user) => {
        if(err) return res.status(400).send(err);
        res.cookie("x_auth", user.token)
        .status(200)
        .json({loginSuccess:true,  userId : user._id });
      })
    })
  })
})

 

문제 없이 잘 실행이 되는 것 같은데 (분기점에 따라서 message는 제대로 출력됩니다.)

다만 generateToken후에 json에서 설정한 loginSuccess, userId 만 보이는게 아니고

 

이렇게 user 정보가 다 나옵니다. loginSuccess은 출력이 안되고요.

이유가 찾을 수 없어 여기에 질문드립니다ㅠ

 

답변 1

답변을 작성해보세요.

0

dev park님의 프로필

dev park

2023.11.08

image

요청 결과는 성공이 아닌, 400 에러로 보이네요!

jjdev93님의 프로필

jjdev93

질문자

2023.11.13

앗 400을 이제야 봤네요 감사합니다!!