Nodejs + jsdom模块,错误对象#<object>没有方法'$'</object>

时间:2012-11-26 02:41:10

标签: jquery node.js npm jsdom

我正在尝试创建一个简单的nodejs客户端,最终将抓取给定的reddit用户配置文件历史记录。现在我正在尝试使用jsdom模块来提取给定用户配置文件的下一页结果的URL。

我目前正在使用ubuntu 12.10,我的npm和nodejs版本是最新的。

这是我到目前为止的代码。我将在下面添加错误消息。

var http = require('http'),
    jsdom = require('jsdom');

//object containing http.request options
//path accepts a username via process.argv[2]
var options = {
    host: 'www.reddit.com',
    path: '/user/' + process.argv[2]
};

//getPage requests the page for a given user
function getPage() {

    var req = http.request(options, function(response){
        response.setEncoding('utf8');

        response.on('data', function(rawHTML){
            // console.log(data);
            setNextPage(rawHTML);
        });
        response.on('error', function(error){
            console.log(error);
        });
        response.on('end', function(){
            console.log('Response complete');
        });
    });

    req.end();
}

//the setNextPage function combs the rawHTML sent to it,
//extracting the URL for the next page of a users history

function setNextPage(rawHTML) {
    jsdom.env(
        rawHTML,
        ["http://code.jquery.com/jquery.js"],
        function(errors, window) {
            var nextPageURL = window.$(".nextprev > a").attr("href");
            console.log('URL for the next page is: ' + nextPageURL);
        }
    );
}

getPage();

现在查看运行客户端后收到的错误消息。

/home/stephen/Desktop/getKarma/app.js:38
            var nextPageURL = window.$('.nextprev > a').attr("href");
                                     ^
TypeError: Object #<Object> has no method '$'
    at /home/stephen/Desktop/getKarma/app.js:38:29
    at exports.env.exports.jsdom.env.scriptComplete (/home/stephen/Desktop/getKarma/node_modules/jsdom/lib/jsdom.js:205:39)
    at process.startup.processNextTick.process._tickCallback (node.js:244:9)

0 个答案:

没有答案