2
我想使用mongoose.methods
將相關模型中的字段分配給架構,以便將其作爲express express middleware中的屬性使用。作爲方法如下:嘗試設置mongoose.method時無法獲得回調
userSchema.methods.accountGroupOfUser = function accountGroupOfUser(callback) {
return this.model('User')
.findById(this.id)
.populate({path: 'roles.account', model: 'Account', select: 'groups'})
.exec(function(err, user) {
if (err) {
return callback(err, null);
}
return callback(null, user.roles.account.groups[0]);
});
};
和中間件
app.use(function(req, res, next) {
res.locals.user = {};
res.locals.user.accountGroupOfUser = req.user && req.user.accountGroupOfUser();
next();
});
並返回我callback is not a function
錯誤。
我尋找類似於這個錯誤的各種例外,但它似乎應該工作,我也在我的應用程序中使用這樣的函數,當我需要對數據庫進行異步調用並且它工作時,所以我真的不明白爲什麼它會返回錯誤。
你能elabolarate嗎?我如何通過臨屋區權利? – ASem
當你的模式方法調用'callback()'時,你傳遞你想運行的函數。我已經更新了我的答案。 –
現在它返回我TypeError:this.model不是一個函數,但它解決了回調的問題,謝謝。 – ASem