Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
客户端可以将文件上传到我的 NodeJS 服务器。我想确保客户端不会滥用服务器并上传太大的文件。因此,我想在检测到问题后立即取消请求,同时向客户端返回有意义的状态代码和响应。假设用户上传了一个 100 MB 大的文件,但我的服务器的最大文件大小为 10 MB。
如果我做
req.socket.destroy()
如果在 Java 中,客户端将收到 SocketException,或者在浏览器中取消请求。
有没有更好的方法来发送优雅的响应,同时避免接收整个 100 MB 文件?
来自413 请求实体太大
服务器拒绝处理请求,因为请求实体比服务器愿意或能够处理的要大。服务器可以关闭连接以阻止客户端继续请求。
因此,根据协议,您应该首先发送 413 响应,然后关闭连接。
尝试
res.writeHead(413, {'Content-Type': 'text/plain'}); res.end('10mb max.');