在node.js和express中,客户端应该如何向服务器发送多达3k的大量数据

In node.js and express, how should a client send a large, up to 3k, amount of data to the server?

本文关键字:服务器 3k 数据 express js node 客户端      更新时间:2024-03-04

客户端将向我的服务器发送一个更改日志,其中包含命令和参数列表,JSON与否待定。

这个有效载荷可以是3或4K,不可能更多。

处理需求的标准方法是什么?客户端应该发送一个包含所有更改的json作为请求体的一部分吗?

有什么建议吗?吸取的教训?

只需POST数据。3-4 KB不算什么,除非你要处理的是印度农村地区的功能手机WAP浏览器,"天哪,我是谷歌,因为我的用户基数太大,所以我非常关心每一个字节"之类的性能问题,或者诸如此类的问题。

如果你真的很担心有效负载的大小,你可以在发送之前对其进行gzip-base64编码,但只有当a)你真的关心这一点(这不太可能),并且b)你的有效负载足够大,这样可以节省带宽时,才能这样做。(gzip-base64的小有效载荷通常会增加它们的大小,因为没有足够的数据来获得足够的压缩优势来抵消base64编码带来的33%的大小增加。)

您可以使用普通的JSON post来发送3/4K的数据。

您应该更加注意如何处理在服务器端接收到的数据,无论是在开始处理数据之前缓冲所有数据(存储在数据库或其他地方),还是分块处理。若您只是将数据转储到服务器上的文件中,则应该创建一个可写流,并将接收到的数据块泵送到流中。

您将如何在服务器上处理接收到的数据?但是,3/4K并不是真正令人担忧的数据量。

您可以使用设置最大上传大小

app.use(express.limit('5mb'));

如果这是个问题?

但是,作为默认值,除了最大缓冲区大小(我认为是1GB)之外,不应该有任何限制。

听起来这也是一种你可以通过常规post请求发布到服务器的东西,换句话说,你使用一个带有文件输入的表单,然后以常规方式上传文件,因为4kb并不是一个真正的大文件。