writeStream打开事件的多个pipe道给出未定义

我正在从一个URL下载一个文件,然后我想要将该文件的元数据写入到目标stream,只有当我确定目标文件被创build(即在fs.createWriteStream(path)成功后)。所以我有使用可写入stream的“开放”事件继续进行。 但是,这段代码恰好在第二个pipe道上给出了错误:

Cannot call method 'pipe' on undefined 

除此之外还有更多的代码使用这里计算的哈希值。 但不知怎的,我现在卡住了这个错误。 我一直在这方面苦苦挣扎了好一阵子。 任何帮助/指针非常赞赏。

另外我试图运行这个例子

 var fs = require('fs'); var digestStream = require('digest-stream') callHandle(); function callHandle(){ var stream = request.get(url) var result = {} handle(reader, result) } function handle(reader,metadata){ const writer = fs.createWriteStream('pathToFile'); writer.on('open', function(){ reader.pipe( digestStream('sha1', 'hex', function(digest, length) { result.sha1 = digest; result.size = length; })) .pipe( digestStream('md5', 'hex', function(digest) { result.md5 = digest; }) ).pipe(writer) }) }