//user.js var mongodb = require(’…/config/mongodb’); var Schema = mongodb.mongoose.Schema; var ObjectId = Schema.ObjectId; var UserSchema = new Schema({ id : ObjectId, name : String, email : String }); UserSchema.methods.findOneByName = function(name, callback) { this.findOne({name : name}, callback); }; module.exports = mongodb.mongoose.model(‘users’, UserSchema);
//index.js var UserModel = require("./user"); var new_user_entity=new UserModel({}); //here 这里怎么不能用这个方法呢~ ~是不是定义错了啊,求救!0.0 new_user_entity.findOneByName(“zhangsan”,function(err,doc){ if(err){ … }else{ … } });
有错误信息?
这个方法应该定义在statics
里
UserSchema.statics.findOneByName = function(name, callback) {
this.findOne({name : name}, callback);
};
如果要定义实例方法应该这样:
UserSchema.methods.findOneByName = function(name, callback) {
this.model('users').findOne({name : name}, callback);
};
可是 var new_user_entity=new UserModel({});//这个不就是创建了实例的么0.0,然后调实例methods方法的 这两种方法适应场合是什么呢。。。
并不觉得你这样写有什么错啊,给错误信息看看?