나는 항상 false를 반환하는 사용자 정의 유효성 검사 함수를 사용하는 매우 간단한 스키마를 가지고 있다고 가정 해 보겠습니다. 왜 몽구스는 빈 문서의 유효성을 검사하지 않습니까?
var MofoSchema = new mongoose.Schema({
name: String
});
MofoSchema.path('name').validate(function (value) {
console.log("I'm validating");
return false;
}, 'No pasaran');
mongoose.model('Mofo', MofoSchema);
그런 다음 내 문서의 새로운 인스턴스를 생성하고 나는 그것을 확인 :
var Mofo = mongoose.model('Mofo');
var mofo = new Mofo({name: "Tarte flambée"});
mofo.validate(function(err) {
console.log(err);
});
는 완벽한 사용자 지정 유효성 검사기 함수가 호출되고 err
이 가득합니다.
하지만 지금은 데이터가없는와 같은 을이 :
var Mofo = mongoose.model('Mofo');
var mofo = new Mofo({});
mofo.validate(function(err) {
console.log(err);
});
사용자 정의 유효성 검사기 기능은 및 err
이 정의되지 호출되지 않습니다. 왜? 몽구스가 커스텀 밸리데이터를 실행하지 않는 이유를 모르겠습니다.
이것은 의도적으로 설계된 동작입니까? 그게 버그 야? 처리 시간을 해킹해야합니까? 검증 전에 빈 데이터를 수동으로 확인해야합니까?
내가 잘못 했나요?
추신 : save
으로 전화하면 사용자 정의 유효성 검사기에도 불구하고 문서가 MongoDB에 비어있게 저장됩니다.