2016-06-24 11 views
2

Ich versuche, Validierung auf meinem Schema vor der Aktualisierung und hier ist der Code dafür.Mongoose findAndUpdate() validators diese null

Schema

var workSchema = mongoose.Schema({ 
location: { 
    type: String, 
    required: true, 
    enum: LOCATIONS 
}, 
flags: { 
    isHourly: { 
     type: Boolean, 
     default: false, 
     validate: [workValidators, 'Message'] 
    } 
} 
}); 


function workValidators(flag) { 
if (flag) { 
/* WHY IS .this NUll? */ 
assert(this.location, 'Must have location specified'); 
}} 



workSchema.findByIdAndUpdate(id, { 
    $set: info 
}, { 
    runValidators: true, 
    new: true 
}).then((updatedModel) => { 
    return updatedModel.toObject(); 
}); 
}; 

Antwort

1

Dies liegt daran, die dies in der Validierungsfunktion einen anderen diesem Zusammenhang hat. Die Idee besteht nur darin, eine einfache Validierung gegen den übergebenen Parameter zu liefern. Wenn Sie etwas Komplexeres wollen, versuchen Sie es mit den Mungo-Haken.