是否有可能在服务器端使用Node.js使用jQuery选择器/DOM操作?
当前回答
在写这篇文章的时候,也有保持的Cheerio。
快速,灵活,精益的实现核心jQuery设计 特别是针对服务器。
其他回答
不。将浏览器环境移植到节点需要付出很大的努力。
我目前正在研究的另一种用于单元测试的方法是创建jQuery的“Mock”版本,在调用选择器时提供回调。
这样你就可以在没有DOM的情况下对jQuery插件进行单元测试。您仍然需要在真正的浏览器中进行测试,以查看代码是否可以正常工作,但如果您发现了特定于浏览器的问题,您也可以在单元测试中轻松地“模拟”这些问题。
一旦它准备好了,我会把一些东西推送到github.com/felixge。
你可以使用Electron,它允许混合browserjs和nodejs。
之前,我尝试在nodejs中使用canvas2d,但最后我放弃了。它不被nodejs默认支持,并且很难安装它(很多很多…dependeces)。 直到我使用电子,我可以很容易地使用所有我以前的browserjs代码,甚至WebGL,并传递结果值(例如。结果base64图像数据)到nodejs代码。
我手动简单地做了,没有任何额外的包或代码。
npm i jquery
然后我复制jquery.min.js文件从node_modules/jquery/dist目录到public/js
<script type='text/javascript' src='/js/jquery.min.js'></script>
<script>
$(document).ready(function() { console.log( "ready!" ); });
</script>
它会起作用的。测试它
注意,复制/粘贴文件并不是最理想的事情,你可以将文件启用为静态文件,这样expressJS就可以读取它了。但对我来说,把它复制到静态公共目录更容易。
您必须使用新的JSDOM API来获取窗口。
const jsdom = require("jsdom");
const { window } = new jsdom.JSDOM(`...`);
var $ = require("jquery")(window);
首先,安装它
npm install jquery -S
安装后,您可以如下所示使用它
import $ from 'jquery';
window.jQuery = window.$ = $;
$(selector).hide();
你可以查看我写的完整教程:https://medium.com/fbdevclagos/how-to-use-jquery-on-node-df731bd6abc7
推荐文章
- 我如何等待一个承诺完成之前返回一个函数的变量?
- 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:///(无服务器)