$.getJSON('https://api.twitch.tv/kraken/channels/' + SLoppierKitty7, function(channel) {
if (channel["stream"] == null) {
var live ="no"
} else {
var live ="yes"
}
这是我的代码,但是当我运行它时,我收到以下错误
E:\ Sloppers bot \ node_modules \ jQuery \ lib \ node-jquery.js:5 window = require('jsdom')。jsdom()。createWindow(); ^
TypeError:require(...)。jsdom(...)。createWindow不是函数 at create(E:\ Sloppers bot \ node_modules \ jQuery \ lib \ node-jquery.js:5:39) 在E:\ Sloppers bot \ node_modules \ jQuery \ lib \ node-jquery.js:9435:18 在对象。 (E:\ Sloppers bot \ node_modules \ jQuery \ lib \ node-jquery.js:9437:2) 在Module._compile(module.js:434:26) at Object.Module._extensions..js(module.js:452:10) 在Module.load(module.js:355:32) 在Function.Module._load(module.js:310:12) 在Module.require(module.js:365:17) at require(module.js:384:17) 在对象。 (E:\ Sloppers bot \ bot.js:2:9)
我该怎么做
这是我正在工作的机器人
答案 0 :(得分:13)
jquery 3.2.1,jsdom 10.1.0。它有效。
git reset --hard upstream/master
答案 1 :(得分:7)
我遇到了同样的问题,现在我将包从require('jQuery')
更改为require('jquery')
后就可以了。似乎后一个包(jquery)使用了比前一个更新版本的jQuery(jQuery)。
答案 2 :(得分:3)
我遇到了同样的问题,在调试过程中,我开始了解新的事情。
当你这样做时 -
npm install jQuery
它将jQuery版本1.7.4安装到您的项目中。
当你这样做时 -
npm install jquery
它将jQuery版本3.2.1安装到您的项目中。
两个命令之间的差异只是大写的 Q 。因此,如果您收到此错误,那么您可能正在使用旧版本的jQuery。
答案 3 :(得分:0)
是的,确实如此。 jQuery期望'窗口'在那里,通常是一个浏览器对象。因此,需要模拟窗口。这就是jsdom所做的。
包括jsdom(npm install jsdom
):
// Load jsdom, and create a window.
var jsdom = require("jsdom").jsdom;
var doc = jsdom();
var window = doc.defaultView;
// Load jQuery with the simulated jsdom window.
$ = require('jquery')(window);
有关更多信息,请参阅jsdom文档: https://www.npmjs.com/package/jsdom
答案 4 :(得分:0)
从这里起,对我来说没什么用,
我的jquery版本:3.2.1
jsdom版本:10.1.0 终于找到了解决方案:
var myHtmlString = 'akkadsf lakuseh alhf lasudfa ls<p></p>';
function jQuery(doc){
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const { window } = new JSDOM();
const JQ = require("jquery")(window)(`<html>${doc || ''}</html>`);
}
var $ = jQuery;
// my html string:
var text = $(myHtmlString).text();