在 Node.js 中使用 jQuery
Using jQuery in Node.js
嗨,我是新来的,希望我能说清楚。我一直在尝试在 node.js 中调用 (?) jQuery,但我所做的一切都失败了。几个小时以来,我一直在努力解决这个问题,但仍然坚持希望有人可以帮助我解决这个问题!
我正在尝试使用他们的 api 从 twitch 获取一些信息。在这种情况下,流媒体是在线还是离线。当我在本地打开页面(没有 node.js)时,jQuery 代码工作正常。但是,当我尝试使用 node.js 时,它给出了错误:$.
这是经过一些研究和随机尝试后得出的..(对 node.js 和 jQuery 来说还是新的):
`
编辑:我尝试使用 node.js 的原因是在不刷新的情况下更新我的网站。所以如果有人去online/offline,he/she不应该强制刷新
"When the only tool you have is a hammer, every problem looks like a nail."
在这种情况下,您尝试使用错误的工具来完成工作。 jQuery 专为在浏览器环境中使用而构建和优化。虽然你可以通过阴影来强制它工作 DOM... 但不要。
如果您想使用 jQuery 的选择器和 DOM 操作功能,cheerio
基本上实现了 API,但专门针对 Node。js/server-side.
但是,您听起来像是想使用它的 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()
。它会 return 一个 Promise
和一个 Response
对象。从那里,你可以提取 text()
或其他任何东西,然后你可以从那里解析它。
如果你需要传递选项,调用不同的方法(如POST)等,你只需给它一个选项对象作为第一次调用的第二个参数(查看他们的文档).
有一个 npm
模块可以使用,它基于 jsdom
。
它会给你一个 window 对象。
示例:
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)
});
嗨,我是新来的,希望我能说清楚。我一直在尝试在 node.js 中调用 (?) jQuery,但我所做的一切都失败了。几个小时以来,我一直在努力解决这个问题,但仍然坚持希望有人可以帮助我解决这个问题!
我正在尝试使用他们的 api 从 twitch 获取一些信息。在这种情况下,流媒体是在线还是离线。当我在本地打开页面(没有 node.js)时,jQuery 代码工作正常。但是,当我尝试使用 node.js 时,它给出了错误:$.
这是经过一些研究和随机尝试后得出的..(对 node.js 和 jQuery 来说还是新的):
`
编辑:我尝试使用 node.js 的原因是在不刷新的情况下更新我的网站。所以如果有人去online/offline,he/she不应该强制刷新
"When the only tool you have is a hammer, every problem looks like a nail."
在这种情况下,您尝试使用错误的工具来完成工作。 jQuery 专为在浏览器环境中使用而构建和优化。虽然你可以通过阴影来强制它工作 DOM... 但不要。
如果您想使用 jQuery 的选择器和 DOM 操作功能,cheerio
基本上实现了 API,但专门针对 Node。js/server-side.
但是,您听起来像是想使用它的 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()
。它会 return 一个 Promise
和一个 Response
对象。从那里,你可以提取 text()
或其他任何东西,然后你可以从那里解析它。
如果你需要传递选项,调用不同的方法(如POST)等,你只需给它一个选项对象作为第一次调用的第二个参数(查看他们的文档).
有一个 npm
模块可以使用,它基于 jsdom
。
它会给你一个 window 对象。
示例:
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)
});