`meteor Js`中的匿名`collection`错误

时间:2014-03-05 04:29:14

标签: meteor

我需要一个帮助,在创建集合时,下面的错误出现在服务器控制台中。如何解决错误?

错误:

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.)

1 个答案:

答案 0 :(得分:3)

TLDR:您需要在创建共享集合时提供集合名称作为参数。


在大多数情况下,您希望在定义集合时提供名称作为参数:

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

如果不这样做,则创建匿名集合:

Items = new Meteor.Collection();

在第一种情况下,集合在客户端和服务器之间共享和同步,并且您提供的名称用作表名,以便将集合存储在Mongo中。

匿名馆藏在他们创建的地方是本地的。他们的内容永远不会同步。因此,即使您在将在服务器和客户端上运行的一段代码中创建此类集合,这两个集合也将是不同的东西:在服务器上创建的数据在客户端上不可见,在客户端在服务器上不可见,并且两者都不会存储在数据库中。

匿名集合有合法用例,当您需要创建一些临时数据时,主要是在客户端,但希望保留Minimongo的所有好处和反应性。然而,它是很少需要的东西之一,你真的知道什么时候需要它。初学者更有可能犯了一个错误而忘记在他想要创建一个典型的共享集合时提供集合名称。因此,系统会发出警告,以确保您真的想要做您刚刚做的事情。

<强>因此:

如果您的目标是创建一个匿名集合,并且您知道自己在做什么,请不要担心该消息。这只是一个警告,代码将起作用并执行它所告知的内容。

如果您想创建一个普通的集合,或者刚刚开始并且不知道这是什么,只需在集合定义中添加一个参数。