javascript - 如何使a从一个管道流到另一个管道nodejs

标签 javascript node.js node-streams

我只是想了解 Node 流并尝试创建一个管道。因此读取文件并写入另一个可写流,然后再次传递到 res 因为这也是可写流。
但它抛出错误

Error [ERR_STREAM_CANNOT_PIPE]: Cannot pipe, not readable

请告诉我失败的原因,并查看下面的英特尔代码。

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

最佳答案

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

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

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

由于 des 不是转换流,因此它们可以独立工作并且不会产生任何差异。

关于javascript - 如何使a从一个管道流到另一个管道nodejs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51269268/

相关文章:

javascript - HTML DOM 操作 : properly replace tag by heading tag

javascript - 评估 MapboxGLManager.mapStyles

angularjs - Angular + Node.js HTTP 和 HTTPS (SSL)

javascript - 如何在 Angularjs Protractor 中使用系统环境变量?

objective-c - 使用 nodeJS 和 Objective-C 的非对称公钥/私钥加密 RSA

javascript - jQuery AJAX 调用 Slim 框架

JavaScript 没有收到 this.form 中的值

javascript - Node.js Streams - 及时安排事件而不产生背压

javascript - 如何在 NodeJS 中创建一对多转换流?

node.js - _read() 未在可读流上实现