在React的客户端上使用axios获取错误响应

时间:2020-07-28 08:35:57

标签: reactjs axios

我正在学习反应。我已经编写了如下的后端代码。

router.post('/signup', async (req,res)=>
{
    try
    {
        const user = new User(req.body);
        const token = await user.generateAuthToken();
        res.cookie('authToken', token);
        res.status(201).send();

    }
    catch(err)
    {
        res.status(400).send({err: "User Already Exists"});
    }
})

关于fontend,我正在使用axios发送请求。我的代码如下。

e.preventDefault();
        try
        {
            const res = await axios.post("/signup",{email, password});  
        }
        catch(err)
        {
            console.log(err)
        }

我的问题是,如何在发生错误的情况下从后端获取User Already Exists该语句。

2 个答案:

答案 0 :(得分:0)

如果来自后端的响应不是2xx,则catch块在前端运行,我们可以使用err.response对象获取数据。要获取数据,请使用以下代码

try
{
   const res = await axios.post("/signup",{email, password})
   console.log(res.data)
}
catch(err)
{
   if(err.response)
   {
      console.log(err.response.data)
   }
}

答案 1 :(得分:0)

还有其他东西破坏了您的功能,您必须在这里调试出什么问题了:

catch(err){
    console.log(err)
    res.status(400).send({err: "User Already Exists"});
}