node.js - 使用流功能后如何获得响应?
问题描述
所以,我收到一个错误“在将标头发送到客户端后无法设置标头”。我得到了我的代码 res.status(200).send(OK(fileObj, null, req)); 是同步的。在我的所有流都准备好后,我不确定如何获得响应。
try {
const fileObj = [];
const stream = await minioClient.listObjects(bucket, '', true);
await stream.on('data', async (obj, error) => {
await fileObj.push(obj);
if (error) {
console.log(error);
}
res.status(200).send(OK(fileObj, null, req));
});
stream.on('error', function (err) {
console.log(err);
});
}
catch (e) {
console.log(e);
}
预期结果:它不应该向我显示“在将标头发送到客户端后无法设置标头”响应。
解决方案
可能您必须在流结束事件上发送响应。
stream.once('end', _=> res.status(200).send('OK'));
推荐阅读
- vba - 简单:循环下拉菜单,将值粘贴到新工作簿中
- c - 如何只杀死前台的子进程?
- c# - 子查询返回超过 1 个值,即使它们没有返回任何内容
- 2d - 在 Unreal-Engine 4 中,有没有办法在动画书完成动画后停止它?
- python - 平台游戏有一个“str”对象没有属性“get_image”精灵错误,我不知道为什么
- html - Bootstrap:调整页面大小时如何防止侧边栏和主 div 折叠?
- amazon-web-services - AWS S3API 将文件从一个文件夹移动到同一存储桶中的另一个文件夹
- javascript - 从python转储JSON并在js2py环境中解析时引号不足
- lua - 相当于 luarocks 的 package.json/requirements.txt?
- javascript - 命名空间没有导出的成员“用户”Angularfire 2