是否有可能在服务器端使用Node.js使用jQuery选择器/DOM操作?
当前回答
npm install jquery——保存所有小写字母
NPM安装jsdom——保存
const jsdom = require("jsdom");
const dom = new jsdom.JSDOM(`<!DOCTYPE html>`);
var $ = require("jquery")(dom.window);
$.getJSON('https://api.github.com/users/nhambayi',function(data) {
console.log(data);
});
其他回答
是的,jQuery可以与Node.js一起使用。
步骤包括jQuery在节点项目:-
NPM jquery——保存 在代码中包含jquery
import jQuery from 'jquery';
const $ = jQuery;
我确实在node.js项目中一直使用jquery,特别是在chrome扩展的项目中。
例如,https://github.com/fxnoob/gesture-control-chrome-extension/blob/master/src/default_plugins/tab.js
2016年,事情就简单多了。使用控制台将jquery安装到node.js:
npm install jquery
将它绑定到node.js代码中的变量$(例如-我习惯了它):
var $ = require("jquery");
做的东西:
$.ajax({
url: 'gimme_json.php',
dataType: 'json',
method: 'GET',
data: { "now" : true }
});
也适用于gulp,因为它基于node.js。
在写这篇文章的时候,也有保持的Cheerio。
快速,灵活,精益的实现核心jQuery设计 特别是针对服务器。
模块jsdom是一个很棒的工具。但如果你想评估整个页面,并在服务器端做一些奇怪的事情,我建议在它们自己的上下文中运行它们:
vm.runInContext
所以像require / CommonJS这样的东西不会破坏你的Node进程本身。
你可以在这里找到相关文档。干杯!
是的,你可以,使用我创建的一个名为nodeQuery的库
var Express = require('express')
, dnode = require('dnode')
, nQuery = require('nodeQuery')
, express = Express.createServer();
var app = function ($) {
$.on('ready', function () {
// do some stuff to the dom in real-time
$('body').append('Hello World');
$('body').append('<input type="text" />');
$('input').live('click', function () {
console.log('input clicked');
// ...
});
});
};
nQuery
.use(app);
express
.use(nQuery.middleware)
.use(Express.static(__dirname + '/public'))
.listen(3000);
dnode(nQuery.middleware).listen(express);
推荐文章
- 我如何等待一个承诺完成之前返回一个函数的变量?
- CALL_AND_RETRY_LAST分配失败-进程内存不足
- 在JavaScript中根据键值查找和删除数组中的对象
- 使嵌套JavaScript对象平放/不平放的最快方法
- 在Ubuntu上安装Node.js
- 如何以及为什么'a'['toUpperCase']()在JavaScript工作?
- 有Grunt生成index.html不同的设置
- 文档之间的区别。addEventListener和window。addEventListener?
- 如何检查动态附加的事件监听器是否存在?
- 使用express.js代理
- 防止在ASP中缓存。NET MVC中使用属性的特定操作
- 如何写setTimeout与参数Coffeescript
- 将JavaScript字符串中的多个空格替换为单个空格
- jQuery: keyPress退格键不火?
- XMLHttpRequest Origin null不允许Access-Control-Allow-Origin for file:/// to file:///(无服务器)