如何说电子邮件在 mongoose Schema 中是唯一的自定义消息
How to say custom message that the Email is unique from mongoose Schema
如何从 mongoose Schema 说出 Email 是唯一的自定义消息。我不想从我的后端检查这封电子邮件是否存在,因为我已经在 mongoose 模式中说过
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"],
},
从 err 那里得到这条消息。控制台中的消息,但我得到的不是这个消息:"message": "E11000 duplicate key error collection: E-COMMERS_v1_Database.users index: email_1 dup key: { email: \"ej@gmail.com\" }",
我知道这条消息是什么意思,但我在
中设置了我的自定义消息
unique: [
true,
"Please use unique mail to create an account",
],
我想收到来自 mongoose/DB 的消息。如何??设置消息的方式是否正确?
我们可以在 regester 控制器中解决它,或者从后端而不是 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,
});
}
}
我们可以使用上面的错误处理函数 multi-time 来处理不同语句的各种错误,例如
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,
});
};
如何从 mongoose Schema 说出 Email 是唯一的自定义消息。我不想从我的后端检查这封电子邮件是否存在,因为我已经在 mongoose 模式中说过
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"],
},
从 err 那里得到这条消息。控制台中的消息,但我得到的不是这个消息:"message": "E11000 duplicate key error collection: E-COMMERS_v1_Database.users index: email_1 dup key: { email: \"ej@gmail.com\" }",
我知道这条消息是什么意思,但我在
中设置了我的自定义消息unique: [
true,
"Please use unique mail to create an account",
],
我想收到来自 mongoose/DB 的消息。如何??设置消息的方式是否正确?
我们可以在 regester 控制器中解决它,或者从后端而不是 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,
});
}
}
我们可以使用上面的错误处理函数 multi-time 来处理不同语句的各种错误,例如
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,
});
};