我希望能够在我的浏览器控制台中编写代码并将其执行,就好像我已将代码放在服务器上的文件中一样。
例如,在我的浏览器控制台中:
[20:08:19.397] Pages = new Meteor.Collection("pages");
[20:08:30.612] Pages.insert({name:"bro"});
[20:08:30.614] "sGmRrQfezZMXuPfW8"
[20:08:30.618] insert failed: Method not found
Meteor说“找不到方法”,因为我需要在服务器上执行new Meteor.Collection("pages");
。
但有没有解决方法,无论是使用上述自动化还是在我的浏览器控制台中明确说“在服务器上运行以下代码行!”?
答案 0 :(得分:3)
好吧,它没有“自动”弄明白 - 你必须非常明确地做两件事之一:
client
和server
目录。isClient
或isServer
部分。否则,您编写的任何代码都将在两种环境中执行。但是,用户在客户端上输入的任何代码都只能在客户端上执行。 Meteor专门用于保护这一边界。
您可以从客户端调用服务器上的method,但不能再欺骗服务器执行客户端定义的函数。
在您的具体示例中,您始终只能在客户端上定义集合,如下所示:
Pages = new Meteor.Collection(null);
这将允许您在客户端上自由操作集合数据,但它不会涉及服务器(任何内容都不会存储在数据库中)。