Node.js 和 JQuery:“ReferenceError:$ 未定义”错误。如何在服务器上使用 jquery 和 Node ?

2023-11-30

帮助!我正在尝试在我的node.js应用程序中使用jquery,但是当我尝试使用'$'时,我不断收到错误,说“$未定义”......但我在顶部定义了它!这就是我所做的:

我从 npm 安装了这两个包,如下所示:

npm install jquery
npm install jsdom

然后我在我的 node.js 应用程序中需要它们:

require("jsdom").env("", function(err, window) {
    if (err) {
        console.error(err);
        return;
    }
    var $ = require("jquery")(window);
});
doSomething();

然后我尝试像这样使用它:

function doSomething(){
    var deferred = $.Deferred();
}

我收到以下错误:

var deferred = $.Deferred();
               ^
ReferenceError: $ is not defined

您认为function正在被处决before the var $ = part?

Thanks!

版本:

  • 节点:4.2.6
  • 快递:4.12.4
  • jQuery:2.2.3
  • JSDom:8.3.0

更新:解决方案

这是我根据大家的回答最终使用的!

var $;
require("jsdom").env("", function(err, window) {
    if (err) {
        console.error(err);
        return;
    }
    $ = require("jquery")(window);
    doSomething();
});

您的 doSomething 函数是在 jsdom.env 函数的边界之外声明的。 $ 只能在该回调内部访问。像这样的东西应该有效:

var $;

require("jsdom").env("", function(err, window) {
    if (err) {
        console.error(err);
        return;
    }
    $ = require("jquery")(window);
    doSomething();
});

 function doSomething(){
    var deferred = $.Deferred();
}

尽管我认为在回调中声明 doSomething 会更惯用。这样它就可以从外部范围访问 jquery。

require("jsdom").env("", function(err, window) {
    if (err) {
        console.error(err);
        return;
    }

    function doSomething(){
        var deferred = $.Deferred();
     }
    var $ = require("jquery")(window);
    doSomething();
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node.js 和 JQuery:“ReferenceError:$ 未定义”错误。如何在服务器上使用 jquery 和 Node ? 的相关文章

随机推荐