Подтвердить что ты не робот

Метеор: вставка не выполнена: метод не найден

Я получаю сообщение журнала insert failed: Method not found и, вероятно, это результат того, что описано в этих потоках:

Однако я не вижу, как это сделать. Позвольте мне показать код в надежде, что он объяснит более четко. Я использую Coffeescript:

if Meteor.isClient
  @VINs = new Meteor.Collection("vins")

  scoped_vins = @VINs
  Template.vins.events =
    "click .icon-plus-sign": ->
      console.log "this is #{this}"
      realVIN = $("#your-vin").val().replace /\D/g, ''
      console.log "user id is: #{Meteor.userId()} vin is #{parseInt(realVIN)}"
      VINs.insert number: parseInt(realVIN), owner: Meteor.userId() if Meteor.userId()
      $("#your-vin").val('')
else
  @VINs = new Meteor.Collection("vins")

Я полностью n00b с Meteor, но то, что я почерпнул из вышеприведенных потоков, состоит в том, что коллекция должна быть доступна на клиенте и на сервере. Разве это не то, что я сделал, или я развиваю кофейную слепоту?

Спасибо!

4b9b3361

Ответ 1

Убедитесь, что вы также объявили свою коллекцию как на сервере, так и на клиенте.

В вашем коде выше @VINs = new Meteor.Collection("vins") как на клиенте, так и на сервере, так что может быть, что вы поместили свой код в каталог /client?

Если это означает, что код будет выполняться только на клиенте, даже если у вас есть else для блока if Meteor.isClient.

Чтобы исправить это, скопируйте строку, которую вы использовали в файле .coffee в каталоге /server:

@VINs = new Meteor.Collection("vins")