如何将错误消息从 Nodejs 后端打印到 MERN 中的前端

问题描述 投票:0回答:2

我正在开发 MERN 项目,我能够从后端发送错误消息,我可以在 Console => Network => Payload 中查看该消息,但我想向我的最终用户显示该错误消息。 我在模型中使用了 required ,并且添加了基本的错误消息,例如填写此字段和密码不匹配等。 auth.js

//REGISTER
router.post("/register", async (req, res) => {
  try {
    //generate new password
    const salt = await bcrypt.genSalt(10);
    const hashedPassword = await bcrypt.hash(req.body.password, salt);
    const user1 = await User.findOne({ email: req.body.email });
    user1 && res.status(404).json("Email Already Exists");
    const user2 = await User.findOne({ username: req.body.username });
    user2 && res.status(404).json("Username already Exists");

注册.jsx

const handleClick = async (e) => {
    e.preventDefault();
    // if (email === email.current.value){
    //   email.current.setCustomValidity();
    // }
    if (passwordAgain.current.value !== password.current.value) {
      passwordAgain.current.setCustomValidity("Passwords does not match!");
     } else {
      const user = {
        username: username.current.value,
        email: email.current.value,
        password: password.current.value,
        city: city.current.value,
        from: from.current.value,
        relationship: relationship.current.value,
      };
      try {
         await axios.post("/auth/register", user);
        history.push("/login");
      } catch (err) {
        console.log(err);
      }
    }
  };
reactjs web web-deployment mern web-frontend
2个回答
1
投票

您需要将请求响应存储在变量中,如下所示:

const res = await axios.post("/auth/register", user);

然后,要记录响应正文,请尝试以下操作:

console.log(res.data);

如果您想在 catch 块中记录错误消息,请尝试以下操作:

console.log(err.message);


1
投票

在前端,您还将有一个响应对象,将该对象存储到变量中。来自后端的

Var response = response
(可以使用jQuery、Axios)。然后,
response.err_msg
或者无论你如何命名它。

© www.soinside.com 2019 - 2024. All rights reserved.