如何从ReactJS中的400 http响应中获取响应数据

时间:2020-06-10 13:00:51

标签: javascript node.js reactjs express axios

我已经在后端中设置了Express,如果帐户已经存在,这就是逻辑。

 try {
        //check if email already exists
        const existingUser = await User.findOne({ email : email });
        if (existingUser) {
            // return res.send('Already exists')
            return res.status(400).json({err: "Account with email already exists"});
        };

我能够使用axios获取200/201 ...响应的数据。但不是这个。 IT还将JSON响应返回给POSTMAN,但不返回给axios以获取400个代码。 我需要提取响应数据 我的前端代码

   const submit = async (e) => {
        e.preventDefault();
        if(password !== password2){
            setErr("Passwords do not match")
        };
        const userData = { name, email, password };
        const url = "http://localhost:5000/api/users/signup";
        const res = await axios.post(url, userData);
        // NO OUTPUT
        console.log(res.data);
        console.log(res);
    }

1 个答案:

答案 0 :(得分:2)

您需要一个try / catch

  const submit = async e => {
    e.preventDefault();
    if (password !== password2) {
      setErr("Passwords do not match");
    }
    const userData = { name, email, password };
    const url = "http://localhost:5000/api/users/signup";
    try {
      const res = await axios.post(url, userData);
    } catch (err) {
      console.log(err.response);
    }
  };