आप समानांतर मिडलवेयर कॉलबैक फ़ंक्शन का उपयोग कर रहे हैं (दोनों के साथ next
और done
), लेकिन आप schema.pre
. में समानांतर फ़्लैग सेट नहीं कर रहे हैं पैरामीटर इसलिए यह धारावाहिक नियमों का उपयोग कर रहा है।
तो या तो अपने कॉल में समानांतर फ़्लैग शामिल करें:
schema.pre("save", true, function(next, done) { ...
या सीरियल मिडलवेयर कॉलबैक शैली पर स्विच करें यदि आपको बस इतना ही चाहिए:
schema.pre("save", function(next) {
var self = this;
model.findOne({email : this.email}, 'email', function(err, results) {
if(err) {
next(err);
} else if(results) {
console.warn('results', results);
self.invalidate("email", "email must be unique");
next(new Error("email must be unique"));
} else {
next();
}
});
});