gpt4 book ai didi

node.js - 显示来自 readStream 的 Nodejs 图像,但连接仍处于打开状态一分钟左右

转载 作者:太空宇宙 更新时间:2023-11-04 00:24:39 28 4
gpt4 key购买 nike

我正在尝试创建个人资料图片上传功能,但我陷入了检索部分。图像会分块下载,一旦由于某种原因被渲染,网络选项卡中图像旁边仍然有一个旋转图标 60 秒,就像图像已下载并渲染,但仍然需要大约一分钟或更长时间让它完成在浏览器的网络选项卡中的加载,如果我尝试同时上传另一个图像,直到先前上传的图像经过那一分钟左右时它才会被渲染,有人可以帮我解决这个问题吗请。

const storage = require('@google-cloud/storage');

const gcs = storage({
projectId: 'my_project_id',
keyFilename: 'keys.json'
});

const bucketName = 'my-profile-photos';
const bucket = gcs.bucket(bucketName);

const retrieveFromGcs = (req, res, next) => {
const stream = bucket.file(req.params.name).createReadStream();

res.writeHead(200, {'Content-Type': 'image/jpg' });

stream.on('data', (data) => {
console.log('hit stream on data');
res.write(data);
});

stream.on('error', (err) => {
console.log('hit error');
next(err);
});

stream.on('finish', () => {
console.log('hit finish');
stream.end();
});

//如果 console.logs 对任何人都有用,“命中数据流”会打印大约 200 次,“命中完成”会打印一次

最佳答案

在这里,当您的流媒体结束时,您必须结束您的资源。

为此,请使用以下代码

stream.on('finish', () => {
console.log('hit finish');
stream.end();
res.end();
});

完成网络加载。我们必须结束我们的响应对象。这样浏览器就知道现在没有数据可以写入响应。

关于node.js - 显示来自 readStream 的 Nodejs 图像,但连接仍处于打开状态一分钟左右,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43239076/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com