我需要能够在实际处理之前读取Content-Length
请求标头。
我目前的确切问题是我有一个移动应用程序,推送给每30秒发送数据的许多用户。如果数据推送不起作用(例如没有互联网)或服务器没有响应200,201或202,它会将数据保存在手机上的数据库中,稍后再次尝试将其发送到服务器。
这可以按预期工作,直到一些客户开始累积数兆字节的数据(可能在很长一段时间内没有互联网连接)。现在,当设备发送数据时,服务器会正确保存数据,但需要3-4秒才能回复。这太长了,移动设备假设数据未被接受并将其保存在其数据库中。
所以我有客户端每30秒发送一兆字节的数据,这真的很糟糕。我想在收到数据后立即回复202 Accepted
,因此移动应用程序会清除缓存,然后我将数据插入服务器上的数据库中。
我知道app.use(express.json({limit: '10mb'}));
可以在处理请求之前读取请求的大小,因为它会在开始接收请求后的几毫秒内触发413代码。在处理之前它如何读取尺寸?
谢谢
答案 0 :(得分:3)
express.json
读取Content-Length
标题,就像通常读取任何标题值一样:var length = req.headers['content-length'];
。