Node.js 使用res.send时,不会发送整个文件
在我的后端,我从一个网站获得一个包含数据的流,该网站包含的信息比我的路线发送的信息多得多。根据该代码:Node.js 使用res.send时,不会发送整个文件,node.js,feedparser,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(theNew
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控制台日志,超过80000个字符,因为它包含多篇文章
但是,news.post中的console.log及其发送的响应只是流中最早的对象,即一篇文章。为什么?
编辑:NM我能把它弄明白。我必须将news设置为一个数组,然后按数组的形式将项目推入其中。流在抓取数据时正在流式传输数据,而且速度非常快,因此输出是多个看起来像一个文件的流。实际上,我只是将变量设置为流式传输的最后一项。通过使用数组并将其推入,我能够获得所有信息