Node.js的:与jsdom问题 - jQuery对象返回undefined(node.js:

2019-10-17 03:58发布

我有兴趣做一些服务器端DOM操作的项目之一,所以我决定看看Node.js的 ,并且在jsdom尤其如此。 我完全新的node.js的,所以也许我的错误是显而易见的,但从来没有少我到处都找不到我的问题的解决方案...

首先我在Windows上运行的节点本地的,也使用网上IDE CLOUD9

这是值得一提,因为我得到了安装最新jsdom包节点(这是0.2.15)的烦恼,因为所需的相关contextify不会在Windows下编译(C ++和Python的需要,当我发现NPM不支持大厦C ++封装) 。 所以,我花了两个替代方法:

  1. 我已经安装了不依赖于contextify的旧版本,这是jsdom@0.2.1。 下面是我目前有NPM列表

     └─┬ jsdom@0.2.1 ├── cssom@0.2.5 ├── htmlparser@1.7.6 └── request@2.10.0 

    当我试图逃避应采取简单易行的测试脚本jsdom GitHub库 CLOUD9返回此警告

     The "sys" module is now called "util". It should have a similar 

    我试图解决这个替换所有提及SYS来UTIL,错误消失了......(还是不是很确定这是正确的事情,虽然...)。 所以,最后当我试图运行这个片段

     var jsdom = require("jsdom"); jsdom.env("http://nodejs.org/dist/", [ 'http://code.jquery.com/jquery-1.5.min.js' ], function(errors, window) { console.log("there have been", window.$("a").length, "nodejs releases!"); }); 

    我发现window.$ === undefined 。 试穿CLOUD9和局部节点v0.8.7与节点v0.6.x和节点v0.4.x运行。

  2. 我试图做的另一件事是安装最新jsdom@0.2.15,得到contextify来自编译这里 ,安装绑定 ,并把它添加到contextify / node_modules作为contextify是依赖于它。 我是不是能够使它在所有的工作=(没有浪费太多的时间,因为它似乎是一个错误的做法,contextify是不是最新的。

    这里的NPM列表

     └─┬ jsdom@0.2.15 ├─┬ contextify@0.1.2 │ └── bindings@1.0.0 ├── cssom@0.2.5 ├── htmlparser@1.7.6 └── request@2.10.0 

另外,这里是我的CLOUD9工作空间 ,不要害羞打转转。

任何帮助表示赞赏。 也许还有其他更好的来完成我想要的东西。

谢谢。

Answer 1:

Cheerio的是,出来不是很久以前是一个很大的简单比jsdom并获得很多你可以jsdom运行问题,使用一个新的模块。

jsdom是真棒,但它可以是真的很难,如果你需要分析你与打非有效的HTML使用HTML5分析器模块,它是超级慢,所有的东西不是dev的友好。

还有PhantomJS考虑:
http://phantomjs.org我的引导开始使用jQuery的。
https://github.com/sgentle/phantomjs-node (这是这样一个黑客 ,我无语)



文章来源: node.js: problems with jsdom - jQuery object returns undefined