在处理之前确定请求大小

时间:2014-05-27 19:46:24

标签: node.js express

我需要能够在实际处理之前读取Content-Length请求标头。

我目前的确切问题是我有一个移动应用程序,推送给每30秒发送数据的许多用户。如果数据推送不起作用(例如没有互联网)或服务器没有响应200,201或202,它会将数据保存在手机上的数据库中,稍后再次尝试将其发送到服务器。

这可以按预期工作,直到一些客户开始累积数兆字节的数据(可能在很长一段时间内没有互联网连接)。现在,当设备发送数据时,服务器会正​​确保存数据,但需要3-4秒才能回复。这太长了,移动设备假设数据未被接受并将其保存在其数据库中。

所以我有客户端每30秒发送一兆字节的数据,这真的很糟糕。我想在收到数据后立即回复202 Accepted,因此移动应用程序会清除缓存,然后我将数据插入服务器上的数据库中。

我知道app.use(express.json({limit: '10mb'}));可以在处理请求之前读取请求的大小,因为它会在开始接收请求后的几毫秒内触发413代码。在处理之前它如何读取尺寸?

谢谢

1 个答案:

答案 0 :(得分:3)

express.json读取Content-Length标题,就像通常读取任何标题值一样:var length = req.headers['content-length'];

相关问题