Javascript 流星发布返回空光标

Javascript 流星发布返回空光标,javascript,model-view-controller,backbone.js,meteor,Javascript,Model View Controller,Backbone.js,Meteor,我使用Backbone.js来路由纵断面图,这样我就可以查看属于/user的数据,这部分工作正常。我能够根据用户名生成一个_id,并将其传递到服务器发布函数,该函数会记录它。但是,当我在subscribe函数中将结果记录回客户端时,我的结果如下所示: 对象{停止:函数,准备:函数} //Client Side Template.userquery.userproject = function() { var query = Session.get('userquery'); va

我使用Backbone.js来路由纵断面图,这样我就可以查看属于/user的数据,这部分工作正常。我能够根据用户名生成一个_id,并将其传递到服务器发布函数,该函数会记录它。但是,当我在subscribe函数中将结果记录回客户端时,我的结果如下所示:

对象{停止:函数,准备:函数}

//Client Side
Template.userquery.userproject = function() {
    var query = Session.get('userquery');
    var user = Meteor.users.findOne({username: query});
    if (user) {
        console.log(user._id); //(works)
        campaigns = Meteor.subscribe('userquery', user._id, function() {
            console.log('ready'); //(works)
        });
        console.log(campaigns); //(returns Object {stop: function, ready: function})
        return campaigns;
    }
}
//Server Side
Meteor.publish('userquery', function(userid) {
    console.log('break');
    console.log(userid); //(I get userid in Terminal)
    var campaigns = Campaigns.find({owner: userid}, {fields: {owner: 1, name: 1}});
    if (campaigns) {
        console.log(campaigns);
        return campaigns;
    }
});

我在这个函数中遗漏了什么吗?我已关闭autopublish,因为它两次生成我的搜索。

Meteor.subscribe,“返回一个提供stop()和ready()方法的句柄。”因此,您看到的行为是有意的。

Publish不会返回光标,而是提供一个句柄,您可以使用该句柄停止或重新启动订阅。要使用这些数据,只需调用您的
活动。正常查找
,只要在订阅完成后,您说“准备就绪”(按时间而不是按代码)