即使在javascript中保存了它的副本,数据也是空的

时间:2013-12-29 07:35:53

标签: javascript node.js redis

var cacheData = JSON.stringify(data);

this.getTwitterSearch(data, options);

cache.setex(query, cfg.cache.news.twitter, cacheData, function(){
    c.log('set cache', query, cacheData);
});

如果我评论this.getTwitterSearch,一切正常。怎么会这样?我不知道该函数可能使cacheData为空。

以下是this.getTwitterSearch

News.prototype.getTwitterSearch = function getTwitterSearch(data, options){
    var statuses = data.statuses
        , items = [];

    c.log('statuses', statuses);

    _.each(statuses, function(d){
        var item = this.getTwitterItem(query, d);

        if ( item ) {
            items.push(item);
        }
    }.bind(this));

    //recent items since last poll
    if ( options.since_id ) {
        if ( items.length ) {
            this.sock.emit('twitter:new', { items: items });
        }
    } else {
        //initial payload
        c.log('twitter:items', items.length);
        if ( items.length ) {
            this.sock.emit('twitter:items', { items: items });
        }
    }

    c.log('items', items.length);

    //TODO set cache items

    //save the last id to use when fetching new items on next poll.
    this.lastId = items.length && items[0].id || this.lastId;
};

1 个答案:

答案 0 :(得分:0)

我在this.getTwitterItem(query, d);中遇到错误,需要将query参数传递给它。否则,错误被抛到twit.search回调中,我将其作为数据读取,而不是错误。