我正在处理MERN项目,我可以从后端发送错误消息,我可以在Console=>网络=>有效负载,但我想向我的最终用户显示该错误消息。我在模型中使用了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");
Register.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);
如果您想在捕获块中记录错误消息,请尝试以下操作:console.log(err.message);
在前端,您还将有一个响应对象,将该对象存储到一个变量中。Var-response=来自后端的响应(可以使用jquery、axios(然后,response.err_msg或您命名的名称。