0

我只是想了解节点流并尝试创建管道。所以读取一个文件并写入另一个可写流并再次传递给res因为那也是可写流。
但它会抛出错误

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

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

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")
})
4

1 回答 1

2

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

所以替换 file.pipe(des).pipe(res) 你可以尝试以下:

文件.管道(des);
文件.管道(res);

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

于 2018-07-10T16:14:39.887 回答