是否可以使用Node.js在服务器端使用jQuery选择器/ DOM操作?
我可以将jQuery与Node.js一起使用吗?
从来没听说过。DOM是客户端的东西(jQuery不会解析HTML,而是DOM)。
以下是一些当前的Node.js项目:
https://github.com/ry/node/wiki(https://github.com/nodejs/node)
而且SimonW的djangode非常酷...
您可以使用Electron,它允许混合使用browserjs和nodejs。
以前,我尝试在nodejs中使用canvas2d,但最终我放弃了。默认情况下,nodejs不支持它,并且安装起来太困难了(很多... dependeces)。在使用Electron之前,我可以轻松地使用所有以前的browserjs代码,甚至是WebGL,并将结果值(例如,结果base64图像数据)传递给nodejs代码。
否。将浏览器环境移植到节点将是一项巨大的工作。
我目前正在研究单元测试的另一种方法是创建jQuery的“模拟”版本,该版本在调用选择器时提供回调。
这样,您就可以在没有DOM的情况下对jQuery插件进行单元测试。您仍然必须在真实的浏览器中进行测试,以查看您的代码是否可以正常运行,但是,如果您发现浏览器特定的问题,则也可以轻松地“模拟”单元测试中的问题。
准备好显示后,我将其推送到github.com/felixge。
您必须使用新的JSDOM API来获取窗口。
const jsdom = require("jsdom");
const { window } = new jsdom.JSDOM(`...`);
var $ = require("jquery")(window);
我相信现在的答案是肯定的。
https://github.com/tmpvar/jsdom
var navigator = { userAgent: "node-js" };
var jQuery = require("./node-jquery").jQueryInit(window, navigator);
现在,您可以使用jsdom。只需在示例目录中查看其jquery示例即可。
在撰写本文时,还保留了Cheerio。
专为服务器设计的核心jQuery的快速,灵活和精益实现。
另一种方法是使用Underscore.js。它应该提供您可能希望从JQuery的服务器端获得的东西。