Я хочу расширить модель с помощью нового метода «create». Он будет проверять требования к созданию документа, создавать дополнительные документы и так далее. Обычно я называюНовый документ от метода мангуста
var user = new User({});
Но как я могу создать документ с самого метода мангустов? То есть
User.methods.create = function(userObject,callback){
//some checks
var doc = ???;
doc.save(function(err){
if(err) return callback(err);
//saving done
callback(null,doc);
});
}
UPD:
Thx к @ chridam Ответим мой окончательный код теперь выглядит следующим образом:
User.statics.create = function(userObject,callback){
//some checks
var doc = this.model('User')(userObject);
doc.save(function(err){
if(err) return callback(err);
//saving done
callback(null,doc);
});
}
Красиво сделано! Я был в середине ответа. – inspired
Итак, метод «static», определенный в Schema, будет методом для всех документов, созданных с помощью модели, тогда как метод «instance» является методом для одного документа. Я правильно понял вас? – BadVolt
Не было бы проще использовать 'return this.create (userObject, callback)' в статическом методе вместо этого? Вам также не хватает части обратного вызова. – JohnnyHK