所以我最近在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本身,但仍然遇到了这个问题。有谁知道怎么了?
我面临同样的问题。正在寻找整个网络的解决方案。事实证明,自从v10以来,jsdom已经更新了一些功能。所以,我想在快速应用程序的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()已弃用。希望这可以帮助您或任何一直面临这些类型问题的人。
第1步:npm安装jquery
第2步:npm安装jsdom
<!-- language: lang-js -->
//add dummy function to test jquery in Node
function fn1( value ){ console.log( "fn1 says " + value );}
function fn2( value ) {console.log( "fn2 says " + value ); return false;}
var jsdom = require('jsdom');
const { JSDOM } = jsdom;
const { window } = new JSDOM();
const { document } = (new JSDOM('')).window;
//comment out the line below it create problem
//global.document = document;
var $ = jQuery = require('jquery')(window);
var callbacks = $.Callbacks();
callbacks.add(fn1);
callbacks.fire("foo!");
callbacks.add( fn2 );
callbacks.fire( "fool!" );