0

我有一个名为的集合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();
}
4

0 回答 0