【问题标题】:Determine request size before processing it在处理之前确定请求大小
【发布时间】:2014-05-28 03:55:19
【问题描述】:

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

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

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

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

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

谢谢

【问题讨论】:

    标签: node.js express


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-03-01
      • 2011-02-12
      • 2018-08-11
      • 2019-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-29
      • 1970-01-01
      相关资源
      最近更新 更多