2016-05-15 10 views
6
$.getJSON('https://api.twitch.tv/kraken/channels/' + SLoppierKitty7, function(channel) { 

if (channel["stream"] == null) { 
    var live ="no" 

} else { 

     var live ="yes" 

} 

मेरी कोड है कि आवश्यकता है, लेकिन जब मैं इसे चलाने मैं निम्नलिखित त्रुटि मिलती हैNodeJS jQuery jsdom

E:\Sloppers bot\node_modules\jQuery\lib\node-jquery.js:5 window = require('jsdom').jsdom().createWindow(); ^

TypeError: require(...).jsdom(...).createWindow is not a function at create (E:\Sloppers bot\node_modules\jQuery\lib\node-jquery.js:5:39) at E:\Sloppers bot\node_modules\jQuery\lib\node-jquery.js:9435:18 at Object. (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) at Object. (E:\Sloppers bot\bot.js:2:9)

मैं क्या करूँ

यह एक बॉट के लिए है मैं

काम कर रहा हूँ
+0

क्या कोई कारण है कि jodeery का उपयोग नोडजेस में जेसन डेटा का अनुरोध करने के लिए करना है? –

+0

जब तक आपको $ .getJSON से अधिक jquery की आवश्यकता नहीं है, तो मैं https://www.npmjs.com/package/request का उपयोग करने का सुझाव दूंगा जो नोड के मूल HTTP मॉड्यूल के आसपास एक सरल रैपर है। – tmslnz

उत्तर

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

+0

https://i.gyazo.com/41235c1ff6f7952fd11cb3e10f926f67।png – SloppierKitty7

+0

node_modules निर्देशिका में jsdom है, या कहीं और जहां इसे 'आवश्यकता' के साथ लोड किया जा सकता है? – TinkerTank

+0

यह node_modules – SloppierKitty7

7

मैं एक ही समस्या का सामना करना पड़ा है और अब यह ठीक है के बाद मैं require('jQuery') से पैकेज बदल require('jquery') पर। ऐसा लगता है कि बाद का पैकेज (jquery) पूर्व की तुलना में jQuery के एक नवीनतम संस्करण का उपयोग करता है (jQuery)।

+0

जो मदद नहीं करता है। –

+0

धन्यवाद आदमी मैंने किया था। –

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(); 
+0

अभी भी मेरे लिए काम नहीं करते: 'TypeError: $ .getJSON एक फ़ंक्शन नहीं है – anunixercoder

10

jQuery 3.2.1, जेएसडम 10.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()); 
+0

बिल्कुल सही! पुराने कोड जेएसडीओएम सिंटैक्स के लिए मुझे मिले सभी कोड उदाहरण थे। बहुत बहुत धन्यवाद! :) – rinogo

+0

'jQuery' -> 'jquery' यह मेरे लिए यह काम करता है। – pizzaisdavid

1

मुझे एक ही समस्या का सामना करना पड़ा, और डीबगिंग के दौरान मुझे कुछ नया पता चला।

जब आप ऐसा करेंगे -

npm install jQuery 

यह अपनी परियोजना के लिए jQuery संस्करण 1.7.4 स्थापित करता है।

और जब आप करते हैं -

npm install jquery 

यह अपनी परियोजना के लिए jQuery संस्करण 3.2.1 स्थापित करता है।

enter image description here

दोनों आदेश के बीच अंतर सिर्फ अपरकेस क्यू है। तो अगर आपको यह त्रुटि मिल रही है तो आप शायद jQuery के पुराने संस्करण का उपयोग कर रहे हैं।

आप पहले कमांड (पुराने संस्करण) here और दूसरे कमांड here के बारे में और अधिक पढ़ सकते हैं।