Перешёл на mongoDB и так получилось, что найденные данные мне нужно записать в объект this.buyer
, но это не работает. Как правильно это сделать и как вызывать после записи функции?
PlayerTracker.prototype.updateBuyers = function() {
if (!db) return;
this.buyer = {}; // work
this.updateData(); // work
db.collection("buyers").findOne({uuid: this._uuid}, function(err, b) {
if (err) throw err
if (!b) return;
this.buyer = b; // dont work
this.updateData(); // dont work
});
}
Проще всего использовать стрелочную функцию - они используют контекст (this
) своего окружения:
PlayerTracker.prototype.updateBuyers = function () {
// ...
db.collection("buyers").findOne({ uuid: this._uuid }, (err, b) => {
if (err) throw err;
if (!b) return;
this.buyer = b;
this.updateData();
});
}
p.s.: Объект экземпляра класса (прототип которого ты дополняешь) не является глобальным... как минимум, он второго уровня. Глобальный объект в Node - это global
.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Есть функция для поискаСейчас фильтрация идет по словам с соответствующей языковой раскладкой клавиатуры