一尘不染

jsdom.env无法在node.js C9上运行

node.js

所以我最近一直在C9上使用Node.js,并在一个javascript文件中遇到了这个问题:

jsdom.env("", function(err, window) {
TypeError: jsdom.env is not a function

这是我的代码:

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

$ = require("jquery")(window);

$.ajax(settings).done(function (response) {
     console.log(response);
  });
});

我更新了所有依赖关系以及Node本身,但仍然遇到此问题。有人知道怎么回事吗?


阅读 269

收藏
2020-07-07

共1个答案

一尘不染

我面临着同样的问题。正在网上寻找解决方案。事实证明,jsdom自v10以来已更新了一些功能。因此,我想在快速应用程序的Node.js端使用jQuery,并且必须像下面这样进行操作:

var jsdom = require('jsdom');

const { JSDOM } = jsdom;

const { window } = new JSDOM();

const { document } = (new JSDOM('')).window;

global.document = document;



var $ = jQuery = require('jquery')(window);

从v10开始不推荐使用.env()。希望这对您或遇到此类问题的任何人有帮助。

2020-07-07