Node.js 响应未结束,浏览器仍在加载-nodejs和GraphicsMagck

Node.js 响应未结束,浏览器仍在加载-nodejs和GraphicsMagck,node.js,imagemagick,graphicsmagick,Node.js,Imagemagick,Graphicsmagick,我对nodejs是新手。在将图像发送到浏览器之前,我正在使用GraphicsMagck调整图像大小。 我的代码如下所示(res是从函数(req,res){…}发送的响应)- 我在浏览器中获取图像,我获取日志“buffer here”,但浏览器仍处于“loading”状态 我曾尝试将.stream()与gm一起使用,并通过管道将标准输出发送到响应,但它也有同样的问题 如果我废除通用汽车公司,直接写下回复的正文,就像这样 res.end(body, 'binary'); 然后它就正常工作了 有人能

我对nodejs是新手。在将图像发送到浏览器之前,我正在使用GraphicsMagck调整图像大小。 我的代码如下所示(res是从函数(req,res){…}发送的响应)-

我在浏览器中获取图像,我获取日志“buffer here”,但浏览器仍处于“loading”状态

我曾尝试将.stream()与gm一起使用,并通过管道将标准输出发送到响应,但它也有同样的问题

如果我废除通用汽车公司,直接写下回复的正文,就像这样

res.end(body, 'binary');
然后它就正常工作了

有人能告诉我这里做错了什么吗?

我发现了问题所在。 问题不在于node或gm,而在于HTTP响应头

当GM返回缓冲区并将其写入HTTP响应时,它会将传输编码头设置为“chunked”。在这种情况下,不应设置内容长度标题。 你可以在这里了解更多

因为我设置了这两个选项,所以即使在图像发送之后,浏览器也会一直等待内容

代码与我发布的代码完全相同,只是在setResponseData()函数(基本上用于设置标题)中,我现在没有设置内容长度标题

res.end(body, 'binary');