我正在尝试处理所需的验证错误,以便在传递给前端之前使错误消息更具可读性:
UserSchema
.post('save', function (error, doc, next) {
console.log(error.errors);
if (error.name === 'ValidationError' && error.errors.academicRole.kind === 'required') {
console.log('custom error');
next(new Error('Academic Role is required.'));
} else {
next(error);
}
});
此代码导致调用User的保存回调,当缺少academicRole属性时,error为空对象;为什么不使用包含自定义消息的错误对象调用保存回调?
答案 0 :(得分:0)
应在post('validate')挂钩中检查验证错误。
如果存在验证错误,则不会调用save()方法和关联的挂钩('保存')和发布('保存')。
UserSchema
.post('validate', function (err, doc, next) {
console.log(err.errors);
if (err.name === 'ValidationError' && err.errors.academicRole.kind === 'required') {
console.log('custom error');
next(new Error('Academic Role is required.'));
} else {
next(err);
}
});