【问题标题】:Meteor, $ defined on client but not on serverMeteor, $ 定义在客户端但不在服务器上
【发布时间】:2014-09-16 07:15:47
【问题描述】:

我正在开发 Meteor 应用程序。我可以在单击按钮时运行的此客户端 javascript 中完美调用 $.get()。但是这个客户端javascript调用了一些服务器javascript(使用Meteor.call()),我在其中使用$.get()并看到错误:

调用方法“server_facebook_authentication”时出现异常 ReferenceError: $ is not defined

我对 Meteor 如何加载资源和库以及诸如此类的东西不是很了解。出了什么问题,我该如何解决?

【问题讨论】:

  • JQuery 没有加载,这就是为什么它不知道 $ 是什么

标签: javascript jquery meteor


【解决方案1】:

当前版本的内置 Meteor jquery 包没有在服务器上加载任何代码:

https://github.com/meteor/meteor/blob/devel/packages/jquery/package.js

jQuery 1.x 无论如何都不是为在服务器端运行而设计的,尽管人们一直在使用它。 2.0 支持服务器端 JS。 Meteor 目前正在过渡到一个新的打包系统,所以我们很可能会在未来看到带有服务器端代码的 jQuery 2.0。

不过现在,您应该使用 Meteor 的 HTTP 库 (http://docs.meteor.com/#http),它可以在服务器和客户端上运行,并且在服务器端可能比 jQuery 更可靠。

【讨论】:

    【解决方案2】:

    你可以使用meteor的HTTP库,或者你可以简单地在服务器端使用jQuery:

    var jQuery = require('./jquery.min.js');

    jQuery.get() //现在可以工作了。

    有人说过,但这可能不是您想要做的。您可以将 jQuery 或 Underscore(例如)用于其他方法,这是完全可以接受的。

    【讨论】:

    • 在 Meteor 中使用 require('./jquery.min.js') 不会得到任何东西。
    • 啊,是的,你是对的,我在想节点。这是一篇很好的帖子,答案需要在 Meteor stackoverflow.com/questions/11009971/…
    猜你喜欢
    • 2016-07-07
    • 2012-12-22
    • 1970-01-01
    • 2021-04-16
    • 2017-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多