2015-04-18 2 views
1

Я следил за учебником метеоров из meteortips, и я добрался до той части, где вы создаете коллекцию в консоли браузера. . Создание работ по сбору, но это не дает мне вставить что-либо в нем (PlayersList = new Meteor.Collection('players');)Meteor minimongo insert method не работает

Пожалуйста, смотрите ниже:

PlayersList.insert({ name: 'Alex', score: 42 }); 
"rpPamgZEZM9opCzHz" 
debug.js:41 insert failed: Method not found 

Что страннее, что я даже получить обратно хэш, как если вставка работает , Typing PlayersList.find().fetch(); возвращает пустой массив :(

Я использую последнюю версию Метеора на ОСЕ Windows 8.1 с MongoDB версией 2.6

Если кто-то может мне помочь, я был бы очень благодарен :)

ответ

4

Вы определили коллекцию PlayersList = new Meteor.Collection('players'); на клиенте , но он не был определен на сервере.

Если у вас есть что-то вроде if(Meteor.isClient) {..} (или в каталоге /client), код не будет запущен на сервере. Убедитесь, что вы также разместили PlayersList = new Meteor.Collection('players'); в каталоге if(Meteor.isServer) (или /server).

Лучшее, что нужно сделать, это разместить его как в корневом каталоге, так и на клиенте и на сервере.

Когда вы вставляете документ на клиенте, сообщение передается на сервер &, он пытается вставить его в базу данных. Сбор не определен на стороне сервера, поэтому он отклоняет его с сообщением method not found.

+0

Ничего себе, спасибо! Это заставляет меня привыкнуть ко всему понятию «общий код». Кроме того, учебник не объяснил это правильно, как и вы! –