发送到客户端后无法设置 headers - Nodejs + AWS-S3 getObject
Cannot set headers after they are sent to the client - Nodejs + AWS-S3 getObject
我将 Nodejs
与 AWS-S3
一起使用,但有时出现错误:
[ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the
client
我有这个功能可以下载任何文件。当我在某些请求后调用它时,我得到了错误。
export const downloadFile = async(req: Request, res: Response) => {
res.setHeader('Content-Disposition', 'attachment');
const params = {
Bucket: AWS_S3.Bucket,
Key: req.params.key
};
s3.getObject(params)
.createReadStream()
.on('error', error => {
return res.status(500).json({
message: 'An error ocurred...',
error
});
}).pipe(res);
}
当您在已经发送 res 后尝试发送 res 时,会发生此错误。你确定你的
return res.status(500).json({
message: 'An error ocurred...',
error
});
函数结束后没有返回值?我会确保在到达方法结束之前等待您的流的执行。否则,您将在本地收到一些 OK 我们已经完成,但实际上并未在服务器上完成,然后再次尝试发送结果。
我将 Nodejs
与 AWS-S3
一起使用,但有时出现错误:
[ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client
我有这个功能可以下载任何文件。当我在某些请求后调用它时,我得到了错误。
export const downloadFile = async(req: Request, res: Response) => {
res.setHeader('Content-Disposition', 'attachment');
const params = {
Bucket: AWS_S3.Bucket,
Key: req.params.key
};
s3.getObject(params)
.createReadStream()
.on('error', error => {
return res.status(500).json({
message: 'An error ocurred...',
error
});
}).pipe(res);
}
当您在已经发送 res 后尝试发送 res 时,会发生此错误。你确定你的
return res.status(500).json({
message: 'An error ocurred...',
error
});
函数结束后没有返回值?我会确保在到达方法结束之前等待您的流的执行。否则,您将在本地收到一些 OK 我们已经完成,但实际上并未在服务器上完成,然后再次尝试发送结果。