我有一个为node.js包装mongodb客户端的类。我打电话给findUsers
后面的课程我得到this.collection
未定义。
如何从原型中访问this.collection
?
谢谢!
类别:
var Users;
Users = (function () {
function Users(db) {
db.collection('users', function (err, collection) {
this.collection = collection;
});
}
Users.prototype.findUsers = function (callback) {
this.collection.find({}, function (err, results) {
});
}
return Users;
})();
用法:
//db holds the db object already created
var user = new Users(db);
user.findUsers();
答案 0 :(得分:3)
你在原型方法中正确地做了,你的错误在db.collection()
的回调函数中。
var Users = (function () {
function Users(db) {
var that = this; // create a reference to "this" object
db.collection('users', function (err, collection) {
that.collection = collection; // and use that
});
}
Users.prototype.findUsers = function (callback) {
this.collection.find({}, function (err, results) {
});
}
return Users;
})();
答案 1 :(得分:-1)
使用其他参考:
Users = (function(){
var that = this;
function users(db)
{
db.collection('users', function(err, collection)
{
that.collection = collection;
}
}
})();