2014-03-05 105 views
2

collection`的錯誤,我需要在創建下面的錯誤是排在服務器console.How解決錯誤的集合的幫助?匿名``中的流星Js`

錯誤:

Warning: creating anonymous collection. It will not be saved or synchronized over the network. (Pass null for the collection name to turn off this warning.) 
+0

正如消息說,它不是一個錯誤,只是一個警告。問題是你是否希望收藏是匿名的。 –

回答

3

TLDR:你需要在創建共享集合提供集合名稱作爲參數。


在大多數情況下,你要提供一個名稱作爲參數,當你定義一個集合:

Docs = new Meteor.Collection('docs'); 

當你不這樣做,你創建匿名收集:

Items = new Meteor.Collection(); 

在第一種情況下,集合在客戶端和服務器之間共享和同步,並且您提供的名稱將用作表名稱,以便將集合存儲在Mongo中。

匿名集合在他們已經創造了地方本地。他們的內容從不同步。因此,即使您在服務器和客戶端上運行的一段代碼中創建了這樣的集合,這兩個集合也將是獨立的東西:在服務器上創建的數據在客戶端上不可見,在客戶端將不會在服務器上可見,並且兩者都不會存儲在數據庫中。

有合法的使用情況的匿名收集,主要是在客戶端上,當你需要創建一些臨時數據,但要保留Minimongo和反應的所有優點。然而,這是很少需要的事情之一,你真的知道什麼時候需要這樣做。初學者更可能犯了一個錯誤,當他想創建典型的共享集合時,忘記提供集合名稱。因此,系統會發出警告,確保您確實想要執行您剛纔的操作。

因此:

如果你的目標是創建一個匿名收集,你知道你在做什麼,不要擔心該消息。這只是一個警告,代碼將起作用,並按照它的要求進行操作。

如果你想創建一個普通的集合,或者是剛剛起步,不知道這是什麼一回事,只需添加一個參數到您的收藏定義。