2016-01-20 118 views
1

我想從客戶端使用流星獲取集合。從流星/節點js的客戶端獲取集合

從客戶端:

Template.mapBody.onCreated(function() { 
 
     var date = this.subscribe("friendUsers"); 
 
     for (x in date) { 
 
      console.log(x); 
 
     } 
 
    });

從服務器:

if (Meteor.isServer){ 
 
    Meteor.publish("friendUsers", getFriendUsers); 
 

 
    function getFriendUsers() { 
 
     return Ski_Stations.find(); 
 
    } 
 
}

我什麼也沒得到在控制檯中。有人對這個問題有什麼想法嗎?

回答

2

從meteor文檔--Meteor.subscribe返回一個訂閱句柄,這非常適合停止或查看訂閱是否已準備就緒。但我不確定在這種情況下這是你想要的。我認爲你會想要迭代這樣的集合..

var friendCursor = friendUsers.find(); 
var friend; 
while (friendCursor.hasNext()) { 
    friend = friendCursor.next(); 
    console.log(friend.somefieldhere); 
} 
var friendCursor = friendUsers.find(); 
var friend; 
while (friendCursor.hasNext()) { 
    friend = friendCursor.next(); 
    console.log(friend.somefieldhere); 
} 
+0

是正確的,訂閱返回一個*訂閱處理*,它不是您可以迭代的文檔的集合。你必須在集合上'.find()'來獲得一個可以迭代的*遊標*。 –