簡體   English   中英

在 Node.js 中使用 jQuery

[英]Using jQuery in Node.js

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

我正在嘗試使用他們的 api 從 twitch 獲取一些信息。 在這種情況下,如果主播在線或離線。 當我打開本地頁面(沒有 node.js)時,jQuery 代碼工作正常。 但是,當我嘗試使用 node.js 時,它會出現以下錯誤:

這是經過一些研究和隨機嘗試..(對 node.js 和 jQuery 來說仍然是新的):

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

`

編輯:我嘗試使用 node.js 的原因是在不刷新的情況下更新我的網站。 所以如果有人上線/下線,他/她不應該被迫刷新。

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

在這種情況下,您正在嘗試使用錯誤的工具來完成這項工作。 jQuery 專為在瀏覽器環境中使用而構建和優化。 雖然您可以通過使用 shadow DOM 來強制它工作……但不要這樣做。

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

但是,您聽起來像是想使用它的ajax()方法(或者它的一個助手,如post()get()

相反,您應該使用為 Node.js 構建的東西。 node-fetch ( https://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() 它將返回一個帶有Response對象的Promise 從那里,您可以提取text()或其他任何內容,然后您可以從那里解析它。

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

您可以使用一個基於jsdomnpm模塊。
它會給你一個窗口對象。 示例:

var express = require('express');
var Window = require('window');
global.window = new Window();
global.document = window.document;
var $ = require('jquery');
var app = express();
function game() {
   $("body").append(`<h1>Hello world!</h1>`);
}
game();
app.get('/', function (req, res) {
    res.send(document.getElementsByTagName('html')[0].innerHTML)
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM