是否有可能在服务器端使用Node.js使用jQuery选择器/DOM操作?
当前回答
这些解决方案在我的电子应用程序中没有一个对我有帮助。
我的解决方案(变通方案):
npm install jquery
在index.js文件中:
var jQuery = $ = require('jquery');
在你的.js文件中,以这样的方式编写jQuery函数:
jQuery(document).ready(function() {
其他回答
模块jsdom是一个很棒的工具。但如果你想评估整个页面,并在服务器端做一些奇怪的事情,我建议在它们自己的上下文中运行它们:
vm.runInContext
所以像require / CommonJS这样的东西不会破坏你的Node进程本身。
你可以在这里找到相关文档。干杯!
你可以使用Electron,它允许混合browserjs和nodejs。
之前,我尝试在nodejs中使用canvas2d,但最后我放弃了。它不被nodejs默认支持,并且很难安装它(很多很多…dependeces)。 直到我使用电子,我可以很容易地使用所有我以前的browserjs代码,甚至WebGL,并传递结果值(例如。结果base64图像数据)到nodejs代码。
我相信这个问题的答案是肯定的。 https://github.com/tmpvar/jsdom
var navigator = { userAgent: "node-js" };
var jQuery = require("./node-jquery").jQueryInit(window, navigator);
不。将浏览器环境移植到节点需要付出很大的努力。
我目前正在研究的另一种用于单元测试的方法是创建jQuery的“Mock”版本,在调用选择器时提供回调。
这样你就可以在没有DOM的情况下对jQuery插件进行单元测试。您仍然需要在真正的浏览器中进行测试,以查看代码是否可以正常工作,但如果您发现了特定于浏览器的问题,您也可以在单元测试中轻松地“模拟”这些问题。
一旦它准备好了,我会把一些东西推送到github.com/felixge。
这些解决方案在我的电子应用程序中没有一个对我有帮助。
我的解决方案(变通方案):
npm install jquery
在index.js文件中:
var jQuery = $ = require('jquery');
在你的.js文件中,以这样的方式编写jQuery函数:
jQuery(document).ready(function() {