【发布时间】:2021-08-11 00:56:52
【问题描述】:
这是我的用户模型:
const userSchema = new Schema(
{
username: {
type: String,
required: [true, "Please enter a username"],
unique: [true, "The username is taken"],
},
password: {
type: String,
required: [true, "Please enter a password"],
minLength: [8, "The minimum password length is 8"],
},
},
{ timestamps: true }
);
我在这里创建用户
exports.create_user = async (req, res, next) => {
try {
const { username, password } = req.body;
await User.validate({ username: username, password: password });
const salt = await bcrypt.genSalt();
const hashedPassword = await bcrypt.hash(password, salt);
await User.create({ username: username, password: hashedPassword })
} catch (err) {
console.log(err.message);
}
};
首先我验证密码和用户名。我已经为他们设置了自定义消息,但是当用户不是唯一的时,它不会像我在验证中所写的那样记录The username is taken。相反,它记录E11000 duplicate key error collection: DB.users index: username_1 dup key: { username: "User56" }。如何让它记录我的自定义错误消息?
【问题讨论】:
标签: javascript database mongodb express mongoose