我有一个名为Application
的集合,用于存储具有引用user
的属性userId
的文档。这就是我将用户与应用程序相关联的方式。
所以要获取当前登录用户的应用程序,这是我的代码:
currentApp = function() {
var userId = Meteor.userId(),
appCursor = Applications.find({"user": userId});
if (appCursor.count() === 0) {
console.log('no application found');
return ;
} else if (appCursor.count() > 1){
// when there are duplicate applications for a user
console.log('apps found: ' + appCursor.count());
return Applications.findOne({"user": userId});
} else {
// cursor fetch returns an array
return appCursor.fetch()[0];
}
}
此代码大部分时间都可正常运行。但是,偶尔刷新页面后,我会收到no application found
错误。
我不确定为什么会这样。任何建议将不胜感激。如果我的问题不明确,请随时要求澄清!
更新:一旦部署到服务器(meteor.com),如果发生此错误,它会坚持下去。让事情恢复正常的唯一方法是退出并重新登录。
更新:currentApp
用于客户端模板,如下所示
Template.form.app = function () {
return currentApp();
}