我正在开发 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);
}
}
};
您需要将请求响应存储在变量中,如下所示:
const res = await axios.post("/auth/register", user);
然后,要记录响应正文,请尝试以下操作:
console.log(res.data);
如果您想在 catch 块中记录错误消息,请尝试以下操作:
console.log(err.message);
在前端,您还将有一个响应对象,将该对象存储到变量中。来自后端的
Var response = response
(可以使用jQuery、Axios)。然后,response.err_msg
或者无论你如何命名它。