我如何从一个管道到另一个管道节点的流

时间:2018-07-10 15:35:26

标签: javascript node.js node-streams

我只是想了解节点流并尝试创建管道。因此,读取文件并写入另一个可写流,然后再次传递给 res ,因为那也是可写流。
但是会引发错误

  

错误[ERR_STREAM_CANNOT_PIPE]:无法管道传输,不可读

请让我知道失败的原因,并查看下面的intel代码。

const http = require('http')
const fs = require('fs')

var server = http.createServer((req, res)=>{
    //created the read strem
     let file = fs.createReadStream('./temp_files/file1.txt')
     // pipig this RES, since is RES is the aother writeable stream
     let des = fs.createWriteStream('./temp_files/final.tct')
     file.pipe(des).pipe(res) // ERROR <<<------------------------------

})

server.listen(9090, (req, res)=>{
    console.log("runnig at port 9090")
})

1 个答案:

答案 0 :(得分:2)

您不能将两个可写流链接到管道调用。您需要在中间有一个双工流。

因此,替换file.pipe(des).pipe(res)可以尝试以下操作:

file.pipe(des);
file.pipe(res);

由于des不是转换流,因此它们可以独立工作,不应有任何区别。