Vì một lý do nào đó
validate: [ isEmail, 'Invalid email.']
không hoạt động tốt với thử nghiệm validate()
.
const user = new User({ email: 'invalid' });
try {
const isValid = await user.validate();
} catch(error) {
expect(error.errors.email).to.exist; // ... it never gets to that point.
}
Nhưng mongoose 4.x (nó có thể làm việc cho các phiên bản cũ quá) có các tùy chọn thay thế khác mà làm việc tay trong tay với Unit tests.
validator Độc thân:
email: {
type: String,
validate: {
validator: function(value) {
return value === '[email protected]';
},
message: 'Invalid email.',
},
},
Nhiều xác nhận:
email: {
type: String,
validate: [
{ validator: function(value) { return value === '[email protected]'; }, msg: 'Email is not handsome.' },
{ validator: function(value) { return value === '[email protected]'; }, msg: 'Email is not awesome.' },
],
},
Làm thế nào để xác nhận email:
Tôi đề nghị: hàng trăm Để lại rằng các chuyên gia đã đầu tư số giờ xây dựng ing các công cụ xác nhận hợp lệ.(Đã được trả lời trong here cũng)
npm install --save-dev validator
import { isEmail } from 'validator';
...
validate: { validator: isEmail , message: 'Invalid email.' }
Awesome! Tôi cũng không biết về phương thức test(). – Tamas
Bạn nên xác định regex bên ngoài hàm để có hiệu suất tốt hơn. – Killah
Regex này không xác thực được một số email hợp lệ, chẳng hạn như các dấu cộng bao gồm ký hiệu dấu cộng ở bên trái. –