使用res.send时,不会发送整个文件

时间:2015-11-09 18:48:27

标签: node.js feedparser

在我的后端,我收到一个流,其中包含来自网站的数据,其中包含的信息比从我的路线发送的信息要多得多。从这段代码:

feedparser.on('readable', function(){
    var stream = this;
    var meta = this.meta;
    var item;

    while(item=stream.read()){
        theNews = item;
        console.log(JSON.stringify(theNews));
    }
});

news.post('/', function(req, res){
    var currentNews = JSON.stringify(theNews);
    console.log(currentNews);
    res.send(currentNews);
});

feedparser.on中的console.log返回一个包含许多新闻文章的对象。当我控制台在该范围内登录时,它会显示所有文章属性,例如标题,描述,链接等...它占用了整个cmd控制台日志,因为它包含多篇文章,因此给了我超过80,000个字符。

但是,news.post中的console.log及其发送的响应只是流中最旧的对象,即一篇文章。为什么呢?

编辑:NM我能够弄明白。我不得不将新闻设置为一个数组,然后将项目推入其中。

1 个答案:

答案 0 :(得分:0)

当数据流抓取它时,流正在对数据进行流式处理,并且它确实快速完成,因此输出是多个流,看起来像一个文件。实际上,我只是将变量设置为流式传输的最后一项。通过使用数组并推入它,我能够获得所有信息。