在阅读并略微理解node stream handbook之后,我想在适当/可能时使用流。
我有一个请求,上传一个应该写入文件系统上另一个位置的文件。这可以通过以下方式完成:
readStream = fs.createReadStream(request.files.file.path);
readStream.pipe(fs.createWriteStream(targetPath));
这很好用,但我想将写入流的结果传递给响应 - 具体来说,我希望目标路径在成功时通过管道传递给结果。现在我正在做:
readStream.pipe(fs.createWriteStream(targetPath)).on("close", function ()
serverResponse.send(200, targetPath);
});
这很好用,但我觉得它比它需要的更冗长,我应该可以像.pipe
一样调用结果read.pipe(write).pipe(respose)
。
我能做些什么来让写入流来管理响应的目标路径,或者更好的方式来做我正在做的事情?