在我将服务器节点JS更新为节点10-alpine版本后,我开始收到下一个错误
错误 [ERR_STREAM_CANNOT_PIPE]:无法管道,不可读。
我必须提到,对于节点 8-alpine,这段代码可以工作(我尝试过回滚(
在我的代码中,我正在尝试从 GCloud 返回文件:
try {
const file = await
gcs.bucket(`BUCKET_NAME`).file(filePath);
if (file) {
const results = await file.getMetadata();
const stream = await file.createReadStream();
return res.pipe(stream);
else {
return send(res, 403)
}
}
else {
return send(res, 404);
}
} catch (err) {
console.error(err);
return send(res, 500);
}
升级到节点 -10 -alpine 后是否有人遇到过这样的问题?
正是错误所说的。res.pipe(steam)
附加可写流,stream
可读流res
。但stream
是一条溪流。读。请改用fs.createWriteStream(...)
或file.createWriteStream(...)
。这在以前可能有效,因为您的gcs.bucket(...).file(...)
函数返回一个带有可写文件描述符的文件。所以这可能是鸭子打字出错的情况。