Node.js - 如何将流转换为字符串

Posted

技术标签:

【中文标题】Node.js - 如何将流转换为字符串【英文标题】:Node.js - How to get stream into string 【发布时间】:2013-06-29 12:42:44 【问题描述】:

我有流,我需要将流内容转换为字符串。我使用 http.get 从互联网流式传输。我也将流写入文件,但我不想写入文件,然后打开同一个文件并从中读取...... 所以我需要将流转换为字符串 谢谢大家的建议...

【问题讨论】:

你的问题太模糊了。那么你想把传入的数据转换成字符串,还是写入磁盘呢?一些示例代码会有所帮助。 Writing node.js stream into a string variable 的可能重复项 【参考方案1】:

不要使用第二个嵌套函数,而是尝试流上的 toString() 方法。然后可以将其通过管道传输到您想要的任何位置,您还可以编写一个 through() 方法,将其分配给一个变量或直接在一个函数中使用它。

var http = require('http');

var string = '';
var request = http.get('http://www.google.cz', function (err, data)
  if (err) console.log(err);
  string = data.toString();
  //any other code you may want
);
//anything else

最后一点——http.get() 方法有两个参数:url 和回调。这需要两个参数,而您可能一无所获,因为它是一个空的错误消息。

【讨论】:

我认为这只适用于这里,因为 http.get 返回一个扩展流,通常可读流没有 toString 方法可以这种方式工作。【参考方案2】:
var http = require('http');

var string = '';
var request = http.get("http://www.google.cz", function(response)        
    response.on('data', function(response)
      string += response.toString();

  ); 
    response.on('end', function(string)
      console.log(string);
    );  
  );

这肯定有效。我正在使用它。

【讨论】:

以上是关于Node.js - 如何将流转换为字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Node.js 中将字符串转换为字节数组?

如何在 node.js 中将位字符串转换为 base64?

将rowdatapacket转换为数组,如何将mysql node.js api rowdatapacket转换为数组,将字符串转换为数组

如何从express node.js中的对象req数据转换为字符串

将 node.js 缓冲区转换为字符串,然后转换为 JSON

将node.js缓冲区转换为字符串,然后转换为JSON