問題:在項目中用到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()中間件之前。