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

Ben*_*son 2 meteor

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

var people = new Meteor.Collection("people");
Run Code Online (Sandbox Code Playgroud)

当我尝试做一个简单的插入时,像这样:

people.insert({name: "Benson"});
Run Code Online (Sandbox Code Playgroud)

我收到404错误,文本"找不到方法".我承认我很有可能在这里尝试一些东西,但我很想知道错误是什么,为什么错误是如此不透明(即它来自哪里).

deb*_*lis 6

此错误几乎肯定意味着您只people在客户端上定义,而不是在服务器上定义.该new Meteor.Collection('people')声明必须同时在服务器上运行,否则服务器不知道如何运行你的INSERT命令.

确保您new Meteor.Collection同时呼叫客户端和服务器.你在里面if (Meteor.is_client)或在client子目录下的文件中调用它?

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