Meteor js - 无法通过控制台

时间:2016-12-08 15:06:34

标签: javascript mongodb meteor meteor-blaze

我正在关注Meteor的udemy课程。

复制问题的步骤:

1)关于CMD:

meteor create Leaderboard
cd Leaderboard
meteor npm install
meteor run
(server starts, localhost:3000)

2)然后,我删除了main.css,main.html和amp;的内容。 main.js(在客户端文件夹下)。

3)打开main.js并添加以下行:

PlayersList = new Mongo.Collection('players');

在Chrome的控制台上,我输入了“PlayersList”并获得了以下内容:

M…o.Collection {_transform: null, _connection: Connection, _collection: LocalCollection, _name: "players", _driver: LocalCollectionDriver…}

问题

当我在控制台上输入时:

PlayersList.insert({ name: 'David', score: 0 });

这是错误:

"eebRFhA9vbSfHzPKk"
meteor.js?hash=e3f53db…:930 insert failed: Method '/players/insert' not found

为什么我得到它?我按照教练提供的确切步骤进行操作。这有什么不对?

2 个答案:

答案 0 :(得分:2)

该错误是由未在服务器上定义的集合引起的,仅在客户端上。

meteor create app创建的默认应用包含两个main.js个文件,一个在client,另一个在server文件夹中。这些特别命名的文件夹完全按照您的预期工作 - 其中的内容仅加载在客户端或服务器上。显然,您只将集合定义添加到client中的集合定义。要解决这个问题,如果你把一个文件放在这些特别命名的文件夹之外 - 比如创建一个名为collections的文件夹,然后在那里添加一个PlayersList.js文件并在那里定义你的收藏,那么它们将由两者加载和工作。

或者(这是开发更大的应用程序时推荐的方法)如果将定义集合的文件放入名为imports的文件夹中,那么您可以import分别对您的服务器和客户端代码而不是Meteor自动包括它。您可以阅读有关Meteor应用程序结构here的更多信息。

答案 1 :(得分:0)

试试这个: - PlayersList._collection.insert({name:'David',得分:0});