来自readStream的Nodejs图像被显示,但连接仍然打开一分钟左右

我正在尝试创build个人资料图片上传function,并且被卡在检索部分。 图像以块forms下载,一旦出现某种原因,networking标签中的图像旁边还有一个旋转的图标持续60秒,就像图像被下载并渲染,但仍然需要大约一分钟或更长的时间因为它完成在浏览器的networking选项卡加载,如果我试图同时上传另一个图像,它不会得到渲染,直到先前上传的图像通过一分钟左右,有人可以帮我弄清楚请。

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完成你不得不结束你的水库。

用于下面的代码

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

完成networking加载器。 我们必须结束我们的回应对象。 这样浏览器就知道现在没有数据要写回应了。