gpt4 book ai didi

node.js - 在结果消息中显示 Mongoose Node 验证的实际错误

转载 作者:太空宇宙 更新时间:2023-11-04 01:46:32 26 4
gpt4 key购买 nike

我正在node.js/react中使用mongoose和axios,需要获取客户端的特定验证错误,以便我可以更新表单。在这种情况下,用户电子邮件已经是数据库并且不是唯一的。返回到前端的错误显得毫无用处。我在前端尝试了 err.message 但它没有给我任何东西。我如何调用特定的错误消息来告诉我实际的错误?

调用前端 API 并包括:

  API.createUser({
userEmail: this.state.profile.email.toLowerCase(),
})
.catch(err => console.log(err))

后端 Controller

  db.WmUser
.create(req.body)
.then(dbModel => res.json(dbModel))
.catch(err => res.status(422).json(err));

Mongoose 模式包括:

userEmail: {type: String, unique: true, required: true},

结果返回前端错误:

Error: Request failed with status code 422
at createError (createError.js:16)
at settle (settle.js:18)
at XMLHttpRequest.handleLoad (xhr.js:77)

Controller 后端返回结果:

如果我在 Controller 中使用以下代码,我会收到我需要的错误消息,但不知道如何将其返回前端:

  .catch(err=> console.log(err.message))

最佳答案

问题是我在前端调用错误的方式。它需要是 error.response 以防有人遇到这个问题

前端调用axios的函数

  API.createUser({
userEmail: this.state.profile.email.toLowerCase(),
})
.then(function (response) {
console.log(response);
})
.catch(function (error) {
if(error.response.data.code == 11000){
console.log("THE EMAIL IS ALREADY IN THE DATABASE");
}
console.log(error.response);
})

API 文件中的 AXIOS 函数

createUser: function(userData){ 
return axios.post("/api/wmUser/", userData);
}

关于node.js - 在结果消息中显示 Mongoose Node 验证的实际错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51237452/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com