gpt4 book ai didi

node.js - 已完成请求的 req.pause() 会暂停下一个请求

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

我有一个非常简单的文件上传示例

var http = require('http');
http.createServer(function(req, res){
console.log(req.method);
if (req.method == 'GET'){
res.writeHead(200);
res.write('<html><head></head><body><form method="POST" enctype="multipart/form-data"><input type="file" id="f" name="f"><input type="submit"></body></html>')
res.end();
}else if(req.method == 'POST'){
req.pause();
res.writeHead(200);
res.end();
}else{
res.writeHead(404).end();
}
}).listen('8081');

我想做的是暂停上传。虽然它可以很好地处理大文件,但可能与单个部分中的请求一起发送的小文件(<= 100kB)不会暂停(这很好并且可以理解),而是下一个对服务器的请求已暂停(即,当我尝试加载页面时,它永远不会到达 console.log(req.method) 部分,但当我再次刷新时,它会恢复正常),这是绝对不好。

这似乎是一个偶尔会弹出的错误,所以当我没有发现任何对此的提示时,我感到很惊讶。您的想法/可能的解释/解决方法/修复建议是什么?现在我检查文件的大小是否低于某个阈值,但它看起来不太安全或不优雅。

最佳答案

我认为(可能是错误的)req.pause 会导致底层套接字暂停。验证此声明的一种方法是在 res.writeHead(200); 中添加 header Connection: Close,该 header 位于 req.pause(); 行之后。

现在,如果一切开始正常工作(下一个请求没有暂停),您可以说底层套接字已暂停并正在为下一个请求重用。

关于node.js - 已完成请求的 req.pause() 会暂停下一个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5413848/

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