NodeJS 在将流发送到其他方法后,无法读取流中的数据

kq4fsx7k  于 2023-06-05  发布在  Node.js
关注(0)|答案(1)|浏览(225)

我创建了一个可读的流正确,但是,在上传该流后,它失去了流内的数据

const readable: Readable = await createCsv(csv)

console.log('step 1', readable.read()) // <---- the data is there
// uploadfile csv to FTP server
await this.ftp.uploadCSV(readable, pathway)
console.log('step 2', readable.read()) // <---- the data is not there

// return csv file to Front End
// FIXME: this shouldn't be done again
const r2: Readable = await createCsv(csv) // <--- have to create readable again to send back data

return { readable: r2 }

如果this.ftp.uploadCSV()返回稍后在函数中返回的流,问题也是一样的。所以问题是我怎样才能把可读的流发送给类的另一个方法,并返回同样的可读数据,而不必像上面的代码那样生成另一个流

oug3syen

oug3syen1#

uploadCSV方法消耗readable流中的数据,导致其变为空。要避免这种情况,您应该克隆流。关于Stack Overflow上的流克隆存在多个问题,其中一个示例为here

相关问题