提问者:小点点

在React中如何用Axios显示错误


日安,

我运行到一个轻微的问题与Axios,我想检查是否状态代码是ok,如果不是,然后我发送错误到客户端。我怎么能那么做?

这是我的尝试,但我没有成功:

路线代码:

router.post("/register", async (req, res) => {
    try {
        //check if fields are empty
        const { name, email, password, rePassword } = req.body;
        if (!name || !email || !password || !rePassword) {
            return res.status(406).send("fields are empty");
        }

        //passsword length should be at leats 6 characters
        if (password.length < 6) {
            return res
                .status(406)
                .send("Password should at least be 6 characters long");
        }
        //checking if passwords match
        if (password !== rePassword) {
            return res.status(406).send("Passwords dont match");
        }
        //check if user exists
        const emailExist = await User.findOne({ email: req.body.email });
        if (emailExist) {
            return res.status(406).send("User already exists");
        } else {
            //create salt
            const salt = await genSalt(10);
            //hashing the password
            const hashedPassword = await hash(req.body.password, salt);
            const user = new User({
                name: req.body.name,
                email: req.body.email,
                password: hashedPassword,
                isAdmin: req.body.isAdmin,
            });
            const newUser = await user.save();
            res.status(200).send(newUser);
        }
    } catch (err) {
        console.log(err);
    }
});

页面代码:

const handleSubmit = async e => {
        e.preventDefault();
        axios
            .post("http://localhost:5000/users/register", {
                name,
                email,
                password,
                rePassword,
            })
            .then(response => {
                console.log(response.data);
            })

            .catch(err => {
                console.log(err);
            });
}

共1个答案

匿名用户

响应将为您提供以下选项

console.log(response.data);
console.log(response.status);
console.log(response.statusText);
console.log(response.headers);
console.log(response.config);

这将允许您检查有效的staustext/代码,或相应地显示错误。