从Meteor服务器方法返回数组到客户端的最佳做法是什么?

时间:2016-08-17 12:23:41

标签: javascript mongodb meteor

我试图从MeteorJS服务器端方法返回MongoDB游标。我可以将数组返回到服务器端,但无法弄清楚如何将其传回客户端。最好的方法是什么?

//current server side
if (Meteor.isServer) {
    Meteor.methods({
        'mongo.updateSearchQuery' (searchQuery) {
            var queryCursor = remoteEvents.find({
                $text: {
                    $search: searchQuery
                }
            }).fetch()
            console.log(queryCursor);
            return (
                queryCursor
            )
        }
    });
}

//current client side
callMongoTextSearch() {
    var searchQuery = this.state.searchQuery;
    var searchQuery = Meteor.call('mongo.updateSearchQuery', searchQuery);
    console.log(searchQuery);
}

1 个答案:

答案 0 :(得分:2)

您必须使用回调作为Meteor.call的最后一个参数才能使用服务器Meteor.methods的返回结果。无论您在Meteor.methods返回的任何内容都将作为回调的第二个参数传递。

例如:

Meteor.call('mongo.updateSearchQuery',searchQuery, function (error, result) {
  console.log(result); // result will be your `queryCursor`
});

您还应该确保获得异步任务的概念,例如: How do I return the response from an asynchronous call?