将服务器 Node JS 更新到 Node 10-alpine 版本后,我开始出现下一个错误
Error [ERR_STREAM_CANNOT_PIPE]: Cannot pipe, not readable.
我必须提到,在 Node 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);
}
升级到 Node -10-alpine后有人遇到这样的问题吗?
最佳答案
正是错误所说的内容。 res.pipe(steam)
将可写流 stream
附加到可读流 res
。但是stream
是一个stream.Readable。请改用 fs.createWriteStream(...)
或 file.createWriteStream(...)
。这可能以前有效,因为您的 gcs.bucket(...).file(...)
函数返回一个具有可写文件描述符的文件。所以这可能是鸭子打字出错的情况。
关于javascript - 更新到 Node 10-alpine 后 - ERR_STREAM_CANNOT_PIPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58079077/