我正在写一个清除函数,用于删除对象。这被称为正常现象。我的问题是;另一个模型没有正常填充。(在其他地方也可以使用)
在ModelGame.js中
var mongoose = require('mongoose');
var ModelUser = require(process.env.root + '/models/ModelUser');
// Some schema code
// Some schema code
// Some schema code
// Remove ids to users.
gameScheme.post('remove', function(game) {
game.removeGameIdsOnUsers().then(function(){
next();
})
.catch(function(err){
next(err);
})
;
});
gameScheme.methods.removeGameIdsOnUsers = function () {
var self = this;
return this.users.reduce(function(promise, user) {
return ModelUser.findOne({id: user}).exec()
.then(function(foundUser) {
return foundUser.removeGameId(self)
.catch(function(err) {
console.log('Error removing game id to user.' + user);
console.log(err);
Promise.reject(err);
}),
Promise.resolve();
});
});
};
我得到以下
TypeError: ModelUser.findOne is not a function
记录ModelUser时 {}
我猜这是由于循环包含(ModelUser
require ModelGame
,require ModelUser
)引起的。
您可以ModelUser
使用mongoose.model()
以下命令在运行时获取引用:
gameScheme.methods.removeGameIdsOnUsers = function () {
const ModelUser = mongoose.model('ModelUser');
...
};
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句