问题:在项目中用到Express做服务器,使用了http-proxy-middleware来代理dotNet core server的API请求,遇到一个POST的认证请求的request body没有传递成功导致认证失败。
错误信息如下:
{ "statusCode": 408, "message": "Reading the request body timed out due to data arriving too slowly. See MinRequestBodyDataRate."}
解决办法:
发现原来是我使用了express.json()中间件,而这个中间件是基于body-parser上封装的,而把http-proxy-middleware放在express.json()中间件之后,才导致出现上述问题。
作者提出了两个解决办法,一种是在onProxyReq事件中处理request body,另一种则是把http-proxy-middleware放在express.json()中间件之前。