所以我最近一直在 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 本身,但仍然遇到这个问题。有谁知道怎么回事?
最佳答案
我遇到了同样的问题。一直在网上寻找解决方案。原来 jsdom 从 v10 开始更新了他们的一些特性。所以,我想在 Express 应用程序的 Node.js 端使用 jQuery。
对于那些只是在寻找有关如何在 Node
中包含 jQuery
的答案的人,我想提一下,您需要使用 npm install jsdom 安装 jsdom
和 jQuery
使用 npm install jquery
。然后:
要使 jQuery
在 Node
中工作,需要一个带有文档的窗口。由于 Node
中 native 不存在这样的窗口,因此可以通过 jsdom
模拟如下:
var jsdom = require('jsdom');
const { JSDOM } = jsdom;
const { window } = new JSDOM();
const { document } = (new JSDOM('')).window;
global.document = document;
var $ = jQuery = require('jquery')(window);
.env() 自 v10 起已弃用。希望这对您或遇到此类问题的任何人有所帮助。
关于javascript - jsdom.env 不适用于 node.js C9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45068932/