Kar*_*l.S 5 javascript stream node.js
我有一个文件流,我想传入一个名为transformRead()的方法,该方法接受一个readStream和一个writeStream,但是我不知道如何创建临时写流...我是否必须使用一个文件?我只想要从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);
}
Run Code Online (Sandbox Code Playgroud)
最后,有人告诉我使用 stream.PassThrough();
所以最简单和“原生”的解决方案是:
var ws = new stream.PassThrough();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
821 次 |
| 最近记录: |