首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Node.Js中从字符串创建流?

如何在Node.Js中从字符串创建流?
EN

Stack Overflow用户
提问于 2012-10-06 09:50:32
回答 8查看 168.3K关注 0票数 221

我使用的是一个名为ya-csv的库,它需要一个文件或流作为输入,但我有一个字符串。

如何在Node中将该字符串转换为流?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2020-01-08 09:02:35

从节点10.17开始,stream.Readable有一个from方法,可以轻松地从任何可迭代对象(包括数组文字)创建流:

const { Readable } = require("stream")

const readable = Readable.from(["input string"])

readable.on("data", (chunk) => {
  console.log(chunk) // will be called once with `"input string"`
})

请注意,至少在10.17和12.3之间,字符串本身是可迭代的,因此Readable.from("input string")将起作用,但会为每个字符发出一个事件。Readable.from(["input string"])将为数组中的每一项(在本例中为一项)发出一个事件。

还要注意,在以后的节点中(可能是12.3,因为文档中说函数当时已更改),不再需要将字符串包装在数组中。

https://nodejs.org/api/stream.html#stream_stream_readable_from_iterable_options

票数 89
EN

Stack Overflow用户

发布于 2012-10-11 02:27:40

只需创建一个新的stream模块实例,并根据需要对其进行自定义:

var Stream = require('stream');
var stream = new Stream();

stream.pipe = function(dest) {
  dest.write('your string');
  return dest;
};

stream.pipe(process.stdout); // in this case the terminal, change to ya-csv

var Stream = require('stream');
var stream = new Stream();

stream.on('data', function(data) {
  process.stdout.write(data); // change process.stdout to ya-csv
});

stream.emit('data', 'this is my string');
票数 31
EN

Stack Overflow用户

发布于 2015-08-31 07:44:48

有一个这样的模块:https://www.npmjs.com/package/string-to-stream

var str = require('string-to-stream')
str('hi there').pipe(process.stdout) // => 'hi there' 
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12755997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档