$.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は、E:\のcreate(E:\ Sloppers bot\node_modules\jQuery\lib\node-jquery.js:5:39)の関数ではありませんオブジェクトでbot\node_modules\jQuery\lib\node-jquery.js:9435:18をスローします。 (E:\ Sloppers bot\node_modules\jQuery\lib\node-jquery.js:9437:2)at Module._compile(module.js:434:26)at Object.Module._extensions..js(module.js: 452:10)at Module.load(module.js:355:32)at Function.Module._load(module.js:310:12)at Module.require(module.js:365:17)at require(module。 js:384:17)オブジェクトで。 (E:\ Sloppers bot\bot.js:2:9)
私は何をしますか
これは私が働いているボット用です
jquery 3.2.1、jsdom10.1.0。できます。
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const { window } = new JSDOM(`<!DOCTYPE html>`);
const $ = require('jQuery')(window);
$('<h1>Hello</h1>').appendTo('body');
console.log($('h1').text());
はい、そうです。 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
ここからは何もうまくいきませんでした
私の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();