如何說電子郵件在 mongoose Schema 中是唯一的自定義訊息。我不想從我的后端檢查這封電子郵件是否存在,因為我已經在貓鼬模式中說過
email: {
type: String,
required: [true, "Please Enter your Email"],
unique: [
true,
"Please use unique mail to create an account",
],
validate: [validator.isEmail, "Please Enter a valid Email"],
},
從錯誤中獲取此訊息。控制臺中的訊息,但我得到的不是這個:"message": "E11000 duplicate key error collection: E-COMMERS_v1_Database.users index: email_1 dup key: { email: \"[email protected]\" }",
我知道這條訊息的含義,但我將自定義訊息設定為
unique: [
true,
"Please use unique mail to create an account",
],
我想從 mongoose/DB 那里得到我的訊息。如何??這是設定訊息的正確方法嗎?
uj5u.com熱心網友回復:
我們可以在注冊控制器中解決它,或者從后端而不是從 DBM 路由您的任何 js 檔案。所以我們可以在 catch 塊中寫一個陳述句:
if (e.message.includes("E11000")) {
return res.status(500).json({
message: "This Email Already Used try with another email",
success: false,
});
}
或者我們可以制作自己的錯誤處理函式
(err,req,res,next)=>{
if (err.message.includes("E11000")) {
return res.status(500).json({
message: "This Email Already Used try with another email",
success: false,
});
}
}
我們可以使用上述錯誤處理函式多次使用不同的陳述句來處理各種錯誤,例如
module.exports = (err, req, res, next) => {
err.statusCode = err.statusCode || 500;
err.message = err.message || "Internal Server Error";
return res.status(err.statusCode).json({
success: false,
error: err.stack,
});
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/478715.html
下一篇:從pnpm恢復到npm
