gpt4 book ai didi

javascript - Node.js 连接无法正确提供图像

转载 作者:太空宇宙 更新时间:2023-11-03 22:37:29 25 4
gpt4 key购买 nike

我目前正在尝试使用 Node.js 编写一个非常简单的网络服务器并进行连接,它基本上只是静态地提供单个目录。

var server = connect.createServer();
server.use(connect.logger());
server.use(connect.static(DOCUMENT_ROOT));
server.listen(SERVER_PORT);

这基本上可以工作,我可以连接到服务器并为其提供index.html。

当我尝试提供图像(无论是在 html 中还是直接打开其 url)时,就会出现问题。它们被提供了,但似乎并不完全,产生如下结果:

connect image result

我查看了标题,但找不到任何明显的缺陷。正确的内容大小就在那里,我唯一觉得奇怪的是内容类型似乎丢失了,但浏览器似乎正确地计算出了它。有趣的是,如果我手动提供图像,它就可以工作。因此,使用此代码可以正确提供图像:

var server = connect.createServer();
server.use(connect.logger());

server.use(function(req, res, next) {
console.log(req.url);

if (req.url != "/testimage.png") {
next();
return;
}

var data = fs.readFileSync(DOCUMENT_ROOT + req.url);

res.writeHead(200, {'Content-Type': 'image/png'});
res.write(data);
res.end();
});

server.use(connect.static(DOCUMENT_ROOT));
server.listen(SERVER_PORT);

有什么想法为什么用 connect 提供图像不起作用?由于这是一个相当小的例子,我觉得很奇怪它不起作用......。我对连接的理解有误吗?

更新

我进一步追踪了它。这似乎是发送模块的流式传输组件的问题 - 它永远不会停止流式传输文件,而是无休止地重复。我认为这可能与我运行 Nodelike 有关,所以我打开了一个问题 at the Nodelike repo 。如果有人有想法,我仍然会很高兴

最佳答案

只是为了解决这个问题:这毕竟是 Nodelike 的问题。 Nodelike 似乎在流媒体方面存在问题或错误,导致了这种情况。切换到同步传送文件解决了这个问题。

关于javascript - Node.js 连接无法正确提供图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24081078/

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