流星:插入失败:找不到方法

Posted

技术标签:

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

我收到了insert failed: Method not found 日志消息,这可能是这些线程中描述的结果:

Meteor using a local connection results in error: insert failed: 404 -- Method not found Getting a error inserting in to a Meteor Collection

但是,我不知道如何。让我展示一下代码,希望能更清楚地解释。我正在使用 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 必须在客户端和服务器上可用。这不是我所做的,还是我患上了咖啡盲症?

谢谢!

【问题讨论】:

重复Meteor using a local connection results in error: insert failed: 404 -- Method not found 作为 n00b 的第一步是删除与重现错误无关的任何代码。例如。 VIN 上的replace 可能与错误无关,因此请尝试将其删除。错误是否仍然出现?继续删除代码,直到找出最小的复制案例。 【参考方案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 项目,我必须把头放在关系空间之外。 很酷的东西,如果您遇到其他问题,请尽管问。一定会至少尝试回答

以上是关于流星:插入失败:找不到方法的主要内容,如果未能解决你的问题,请参考以下文章

将流星部署到 android-device 时找不到 Build Tools 修订版 24.0.1

IDEA中Gradle构建失败找不到类路径的解决方法!

分区找不到的数据找回方法

solidworks特征中的分割工具找不到

Python 使用pyinstaller打包程序失败提示找不到c盘的某个dll文件解决方法,FileNotFoundError: [WinError 2] 系统找不到指定的文件

Python 使用pyinstaller打包程序失败提示找不到c盘的某个dll文件解决方法,FileNotFoundError: [WinError 2] 系统找不到指定的文件