猫鼬中的“唯一”字段存在问题
当我尝试使用现有的电子邮件或用户名创建新用户时,它会起作用。
现在它总是发送错误500。
但是仍然可以有效地处理错误消息吗?例如说(电子邮件已经存在或用户名已经存在)?
const mongoose = require('mongoose');
const uniqueValidator = require('mongoose-unique-validator');
const userSchema = mongoose.Schema({
email : {type: String,required: true,unique: true},password: {type : String,required: true},userid: {type : String},username: {type : String,})
userSchema.plugin(uniqueValidator);
userSchema.index({ '$**': 'text' })
module.exports = mongoose.model('User',userSchema);
和节点控制器:
exports.createUser = (req,res,next) => {
bcrypt.hash(req.body.password,10).then(
(hash) => {
const user = new User({
email: req.body.email,password: hash,userid:req.body.userid,username:req.body.username,});
user.save().then(
() => {
res.status(201).json({
message: 'User added successfully!'
});
}
).catch(
(error) => {
res.status(500).json({
error: error
});
}
);
}
);
};
感谢帮助