Meteor 当集合插入导致404时意味着什么?

Meteor 当集合插入导致404时意味着什么?,meteor,Meteor,我在meteor中有一个非常简单的测试应用程序,我创建了一个类似这样的集合: var people = new Meteor.Collection("people"); 当我尝试做一个简单的插入时,如下所示: people.insert({name: "Benson"}); if(Meteor.isClient()){ // Some other code ... onlyClientCollection = new Meteor.Collection(null); // Some ot

我在meteor中有一个非常简单的测试应用程序,我创建了一个类似这样的集合:

var people = new Meteor.Collection("people");
当我尝试做一个简单的插入时,如下所示:

people.insert({name: "Benson"});
if(Meteor.isClient()){
// Some other code
...

onlyClientCollection = new Meteor.Collection(null);

// Some other code
...
}

我得到一个404错误,文本为“找不到方法”。我承认我很有可能在这里犯了什么错误,但我很想知道错误是什么,以及为什么错误如此不透明(即错误来自何处)

这个错误几乎可以肯定地说,您只在客户机上定义了
人员,而没有在服务器上定义。新Meteor.Collection('people')
声明也必须在服务器上运行,否则服务器不知道如何运行insert命令

确保在客户端和服务器上都调用了
newmeteor.Collection
。您是在
if(Meteor.is\u client)
内部调用它,还是在
client
子目录下的文件中调用它


更多详细信息:在服务器上,
new Meteor.Collection
定义了三种远程方法(
Meteor.methods
),用于插入、更新和删除命名MongoDB集合中的文档。在客户机上,相同的命令创建内存中的minimongo集合,该集合位于浏览器中,并定义三个存根,通过对minimongo集合应用相同的更改来模拟这些方法。通过仅在客户端上声明集合,客户端代码可以很好地运行本地插入,但当它要求服务器执行真正的插入时,服务器不知道您要求它执行的是什么方法。

如果您只想在客户端使用集合,而不需要将该数据保存到服务器,则可以在“客户端”文件夹或.isClient()函数中声明集合,方法是向构造函数传递null,如下所示:

people.insert({name: "Benson"});
if(Meteor.isClient()){
// Some other code
...

onlyClientCollection = new Meteor.Collection(null);

// Some other code
...
}

嗯,我同意错误消息不符合我们通常的标准。
if(Meteor.isServer){Meteor.startup(function(){console.log(“startup”);};people=new Meteor.Collection(“people”);}
很好的回答是空的,修复了我的问题。