如何创build一个临时写入stream?

我有一个文件stream,我想通过一个名为transformRead()方法,这个接受一个readStream和一个writeStream,但我不知道如何创build临时写入stream…我必须使用一个文件? 我只想从rs到ws的一种pipe(),然后ws被压缩并发送到响应。

// Get file stream var rs = store.getReadStream(fileId); var ws = ?????; // Execute transformation store.transformRead(rs, ws, fileId); var accept = req.headers['accept-encoding'] || ''; // Compress data if supported by the client if (accept.match(/\bdeflate\b/)) { res.writeHead(200, { 'Content-Encoding': 'deflate', 'Content-Type': file.type }); ws.pipe(zlib.createDeflate()).pipe(res); } else if (accept.match(/\bgzip\b/)) { res.writeHead(200, { 'Content-Encoding': 'gzip', 'Content-Type': file.type }); ws.pipe(zlib.createGzip()).pipe(res); } else { res.writeHead(200, {}); ws.pipe(res); } 

使用through2轻松创build转换(读/写)stream

最后,有人告诉我有关使用stream.PassThrough();

所以最简单的“原生”解决scheme是:

 var ws = new stream.PassThrough();