【发布时间】:2012-05-12 00:27:36
【问题描述】:
Edit4:我现在很高兴在 Linux 中进行这项工作,因为我已经了解了放置位置以及如何为项目复制文件的其他问题。继续并接受答案并关闭它。
Edit3:由于 Len 的 cmets,我目前有一个解决方法,即使用我的 Debian VM 而不是 Windows。但是,我暂时不回答这个问题,看看是否有人可以解决 Windows 问题。
我一直在慢慢地在我的 Windows 7 桌面上安装 Node.js。我说得很慢,因为每一步都有问题,从 PATH 变量没有更新,到不知道我需要 python,再到 npm 权限错误。无论如何,在 Google 的帮助下,我已经解决了很多问题,但这让我完全感到困惑:
D:\Website\Webscraper>node webscrape.js
node.js:201
throw e; // process.nextTick error, or 'error' event on first tick
^
TypeError: Cannot read property 'userAgent' of undefined
at D:\Website\Webscraper\node_modules\jquery\lib\node-jquery.js:87:23
at D:\Website\Webscraper\node_modules\jquery\lib\node-jquery.js:995:2
at create (D:\Website\Webscraper\node_modules\jquery\lib\node-jquery.js:9416:2)
at D:\Website\Webscraper\node_modules\jquery\lib\node-jquery.js:9422:18
at Object.<anonymous> (D:\Website\Webscraper\node_modules\jquery\lib\node-jquery.js:9424:1)
at Module._compile (module.js:441:26)
at Object..js (module.js:459:10)
at Module.load (module.js:348:31)
at Function._load (module.js:308:12)
at Module.require (module.js:354:17)
这是我的完整代码:
var $ = require('jquery');
在关于缺少软件包的无尽错误之后,我通过 npm 在本地安装了以下内容:
- jquery@1.7.2
- htmlparser@1.7.6
- jsdom@0.2.14
- cssom@0.2.3
- request@2.9.202
- xmlhttprequest@1.3.0
- location@0.0.1
- navigator@1.0.1
但是由于我现在得到的错误是一个非常通用的 JS 错误,并且专门搜索它已经获得了 0 个谷歌点击,我很难过。我想做的就是在 node.js 中运行 jquery。这应该需要大约 3 行输入。我到底错过了什么?
编辑:查看 navigator.userAgent 的结果,看起来我下载的 navigator 包是为了解决这个问题,但它不起作用。我还尝试在 jquery 模块中编辑 node-jquery,用一个设置我自己的 userAgent 的全局变量“navigator”以及其他一些东西来覆盖全局变量,但甚至没有改变错误,更不用说解决问题了。
Edit2:(已针对 Debian 修复,请参阅 Len 的回答下的 cmets)
【问题讨论】:
-
嗯,这就是你要找的线路,希望对你有帮助:github.com/coolaj86/node-jquery/blob/master/lib/…
-
有趣...看起来 jquery 需要一个浏览器 userAgent,但我在 node.js 中运行它,所以没有。不应该有一个包装器来解决这个问题吗? 再次使用谷歌搜索
-
github.com/mikeal/spider 这是一个运行在 nodejs 上并使用 jQuery 获取页面内容的网络蜘蛛。我已经成功地将它用于一些小东西,并在其上构建了另一个需要一些调整的项目,但它提供了基础知识,应该可以帮助你找到解决错误的方法,或者为似乎是一个网络爬虫项目的基础。
-
嗯,看起来您没有使用 jquery 包,而是手动包含它。这可能是解决问题的一种方法,但我更愿意使用标准包。无论如何,感谢您发布您的项目,一旦我建立并运行基础,我一定会看看它以获得一般想法!