2017-05-25 28 views
-1

嗨,我是新來的,希望我能說清楚。我一直試圖在node.js中調用(?)jQuery,但是我所做的一切都會導致失敗。我一直試圖解決這個問題好幾個小時,但仍然希望有人能夠幫助我!在Node.js中使用jQuery

我想從使用api的抽搐中獲取一些信息。在這種情況下,如果流光在線或離線。當我打開頁面localy(沒有node.js)時,jQuery代碼工作正常。但是,當我嘗試使用node.js時,它會給出錯誤:$。

這是經過一番研究和隨機努力。(還是新的Node.js和jQuery):

` http://imgur.com/a/2nhho

`

編輯:爲什麼我想原因使用node.js是更新我的網站而不刷新。所以如果有人在線/離線,他/她不應該被迫刷新。

+0

你安裝了什麼版本的JSDOM? – Li357

+0

請與你一起嵌入圖像的答案。外部鏈接不好,因爲一旦外部資源消失,問題變得不那麼有價值。 –

+0

因爲我是新來的,所以對圖像有限制。當我獲得10點聲望時,我會稍後更新問題。 jsdom版本: 「_from」: 「jsdom @最新的」, 「_id」: 「[email protected]」, 「_inCache」:真實, 「_location」: 「/ jsdom」, 「_nodeVersion」 :「7.5.0」, – Smil3

回答

1

「當你有的唯一工具是錘子時,每個問題看起來都像釘子。」

在這種情況下,您嘗試使用錯誤的工具進行作業。 jQuery專爲在瀏覽器環境中使用而構建和優化。雖然你可以強制它通過有一個陰影DOM工作...不。

如果您想使用jQuery的選擇器和DOM操作功能,cheerio基本上實現了該API,但是專門用於Node.js /服務器端。

但是,你聽起來像你想使用它的ajax()方法(或它的助手像post()get()之一。

相反,你應該使用Node的東西。node-fetchhttps://www.npmjs.com/package/node-fetch)是一款優秀且容易以使用爲Node.js的

這裏專門設計的選擇是從它的文檔的簡單示例:

fetch('https://github.com/') 
.then(function(res) { 
    return res.text(); 
}).then(function(body) { 
    console.log(body); 
}); 

您首先使用所需的URL調用fetch()。它會返回PromiseResponse對象。從那裏,你可以提取text()或其他任何東西,並從那裏你可以解析它。

如果您需要傳遞選項,調用不同的方法(如POST)等,您只需給它一個選項對象作爲第一個調用的第二個參數(查看他們的文檔)。

+0

感謝您的回答!感覺就像我在中途。我嘗試了node-fetch,但是我現在遇到的問題是關於發送「client-id」。由於我沒有發送客戶端ID,它給了我HTTP 400錯誤。 https://dev.twitch.tv/docs/v5/guides/using-the-twitch-api:「請求可以同時包含客戶端ID和OAuth令牌,任何一個請求都會失敗並出現HTTP 400錯誤。 「 – Smil3

+0

看,**這**是如何使用取回 –

+0

@ Smil3看起來有兩種方式發送它。最簡單的就是將它添加到你的URL:'twitch.url?client_id = your_id_here'。另一個是將它作爲頭部發送(這就是'-H'用於cURL),您可以通過將對象作爲第二個參數傳遞給'fetch()'頭部來完成:'fetch(url,{標題:{'Client-ID':'your_id_here'}})'。如果您需要幫助,請嘗試自行解決,然後在更新後的工作中發佈新問題。 – samanime