使用 res.send 时,未发送整个文件
When using res.send the entire file is not being sent
在我的后端,我正在获取一个包含来自网站的数据的流,该网站包含的信息比从我的路线发送的信息多得多。来自这段代码:
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);
});
console.log feedparser.on returns object 中有很多新闻文章。当我在该范围内进行控制台登录时,它会显示所有文章属性,例如标题、描述、link 等...它占用了整个 cmd 控制台日志,给我超过 80,000 个字符,因为它包含多篇文章。
然而,来自news.post的console.log及其发送的响应只是流中最早的object,即一篇文章。为什么?
编辑:NM 我能够弄明白。我不得不将 theNews 设置为一个数组,然后将项目按原样推入其中。
流在抓取数据时正在流式传输数据,而且速度非常快,因此输出是多个流,看起来像一个文件。实际上,我只是将变量设置为流式传输的最后一个项目。通过使用数组并将其推入其中,我能够获得所有信息。
在我的后端,我正在获取一个包含来自网站的数据的流,该网站包含的信息比从我的路线发送的信息多得多。来自这段代码:
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);
});
console.log feedparser.on returns object 中有很多新闻文章。当我在该范围内进行控制台登录时,它会显示所有文章属性,例如标题、描述、link 等...它占用了整个 cmd 控制台日志,给我超过 80,000 个字符,因为它包含多篇文章。
然而,来自news.post的console.log及其发送的响应只是流中最早的object,即一篇文章。为什么?
编辑:NM 我能够弄明白。我不得不将 theNews 设置为一个数组,然后将项目按原样推入其中。
流在抓取数据时正在流式传输数据,而且速度非常快,因此输出是多个流,看起来像一个文件。实际上,我只是将变量设置为流式传输的最后一个项目。通过使用数组并将其推入其中,我能够获得所有信息。