Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在node.js中,将一个流输送到两个流的最佳方式是什么_Javascript_Node.js_Stream - Fatal编程技术网

Javascript 在node.js中,将一个流输送到两个流的最佳方式是什么

Javascript 在node.js中,将一个流输送到两个流的最佳方式是什么,javascript,node.js,stream,Javascript,Node.js,Stream,我正在使用从request.js到pipe()的ReadableStream将资源从http传输到文件系统WritableStream 如何修改它以处理内存中的内容?(用于流式解析或其他) 理想情况下,一个完整的“复制”到两个真正的流中,而不仅仅是一个回调“点击”(但我会听取任何建议)。我想首先通过名为内存流的模块将内容从http.req传输到内存(缓冲区)。然后,我创建一个可读的缓冲区并将其导入文件系统。同时,您可以从该缓冲区创建多个可读文件,并通过管道将其传输到任何可写文件 在我的一个项目中

我正在使用从request.js到pipe()的ReadableStream将资源从http传输到文件系统WritableStream

如何修改它以处理内存中的内容?(用于流式解析或其他)


理想情况下,一个完整的“复制”到两个真正的流中,而不仅仅是一个回调“点击”(但我会听取任何建议)。

我想首先通过名为
内存流的模块将内容从http.req传输到内存(缓冲区)。然后,我创建一个可读的缓冲区并将其导入文件系统。同时,您可以从该缓冲区创建多个可读文件,并通过管道将其传输到任何可写文件


在我的一个项目中,当我收到从浏览器上传的图像时,我需要处理多种大小的缩略图文件,我使用上述方法来实现,将原始图像保存到缓冲区,并为每个大小创建可读的流,管道与
imagemagick
,然后管道文件系统可写流并行保存。

哈,我有一些幸运的时机:今天宣布了我问题的答案:

highlandjs,由@caolan(来自
async
的家伙)编写的新流util库

这就是我需要的:


它具有背压功能、延迟评估等功能。

我不希望将整个文件存储在内存中,而是真正地流式处理它。但是我可以使用
memorystream
,thx作为提示。是的,我同意你的观点,好像我们把文件放到内存中,它可能非常大(在我的情况下,它们都是图像,所以应该是一个大问题)。但是,当我将一个可读文件传输到多个可写文件时,我遇到了一个问题,一些可写文件没有接收任何位。我猜这是因为一些可写文件很快就消耗了流。我试图在管道传输之前暂停可读流,然后继续,但这导致了更多的问题。所以我必须使用缓冲区,它非常稳定。找到一个解决方案,看看我的答案。