Thông số duy nhất không được hỗ trợ cho các thông báo tùy chỉnh?
Tính duy nhất trong Mongoose không phải là một tham số xác thực (như required
); nó yêu cầu Mongoose tạo một chỉ mục duy nhất trong MongoDB cho trường đó.
Ràng buộc về tính duy nhất được xử lý hoàn toàn trong máy chủ MongoDB. Khi bạn thêm tài liệu có khóa trùng lặp, máy chủ MongoDB sẽ trả về lỗi mà bạn đang hiển thị (E11000...
).
Bạn phải tự mình xử lý các lỗi này nếu bạn muốn tạo các thông báo lỗi tùy chỉnh. Tài liệu Mongoose ( "Xử lý lỗi phần mềm trung gian" ) cung cấp cho bạn một ví dụ về cách tạo xử lý lỗi tùy chỉnh:
emailVerificationTokenSchema.post('save', function(error, doc, next) {
if (error.name === 'MongoError' && error.code === 11000) {
next(new Error('email must be unique'));
} else {
next(error);
}
});
(mặc dù điều này không cung cấp cho bạn trường cụ thể mà ràng buộc tính duy nhất không thành công)