gpt4 book ai didi

node.js - 来自 mongoose 方法的新文档

转载 作者:可可西里 更新时间:2023-11-01 10:00:35 25 4
gpt4 key购买 nike

我想用新方法“创建”扩展模型。它将检查文档创建的要求、创建其他文档等。通常我打电话

var user = new User({});

但是我如何从 mongoose 方法本身创建文档呢?即

User.methods.create = function(userObject,callback){
//some checks
var doc = ???;
doc.save(function(err){
if(err) return callback(err);
//saving done
callback(null,doc);
});
}

更新:

感谢@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);
});
}

最佳答案

Statics 将允许定义直接存在于您的模型上的函数,因此定义一个 static 而不是实例模型(就像您尝试过的那样) User 类上的方法。示例:

var userSchema = new Schema({ firstname: String, lastname: String });

// assign a function to the "statics" object of our userSchema
userSchema.statics.create = function (userObject) {
console.log('Creating user');
// use Function.prototype.call() to call the Model.create() function with the model you need
return mongoose.Model.create.call(this.model('User'), userObject);
};

关于node.js - 来自 mongoose 方法的新文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33440252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com