【问题标题】:Meteor: insert failed: Method not found流星:插入失败:找不到方法
【发布时间】:2013-09-02 07:54:58
【问题描述】:

我收到了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,但我从上面引用的线程中收集到的是 collection 必须在客户端和服务器上可用。这不是我所做的,还是我患上了咖啡盲症?

谢谢!

【问题讨论】:

标签: coffeescript meteor


【解决方案1】:

确保您还在服务器和客户端上声明了您的集合。

在客户端和服务器的@VINs = new Meteor.Collection("vins") 上面的代码中,那么可能是您将代码放入了/client 目录?

如果是这样,这意味着代码将仅在客户端上运行,即使您拥有用于 if Meteor.isClient 块的 else

要纠正此问题,请将您使用的行复制到 /server 目录中的 .coffee 文件中:

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

【讨论】:

  • 而且...你第一次尝试就成功了 :) 这是我缺乏理解和一些目录重组的结合。
  • 我不太确定!如果它解决了您的问题,您也不需要if Meteor.isClient..else..,因为它已经在客户端和服务器上运行,具体取决于文件所在的目录。如果您将文件放在根目录中,那么您可以使用@987654329 @(如 todos 示例)
  • 对。非常感谢!我快到那里了。只是没有我想象的那么快。只有我的第二个 mongo 项目,我必须把头放在关系空间之外。
  • 很酷的东西,如果您遇到其他问题,请尽管问。一定会至少尝试回答
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-08
  • 2016-08-07
  • 2014-06-30
  • 1970-01-01
相关资源
最近更新 更多