0
我有一個Express.JS服務器,有很多res.json
。爲了執行統計,日誌記錄和調試,我想在一個catch-all鉤子中捕獲響應負載。響應完成時的快速響應有效負載
我發現了finish
事件res.on('finish')
但我找不到如何從中提取響應有效載荷。
我有一個Express.JS服務器,有很多res.json
。爲了執行統計,日誌記錄和調試,我想在一個catch-all鉤子中捕獲響應負載。響應完成時的快速響應有效負載
我發現了finish
事件res.on('finish')
但我找不到如何從中提取響應有效載荷。
res.on('finish')在數據發送完畢後被調用,所以負載不一定再存在於服務器上。您可以添加中間件來表達攔截每一個請求,然後重寫.json
方法來記錄數據的函數被調用:
router.use('/', (req, res, next) => {
var old = res.json.bind(res);
res.json = (body) => {
//Do whatever
old(body);
}
next();
})
那麼什麼樣的中間件/事件類型的訂閱我可以用它來攔截響應(錯誤或確定)在將響應轉發給客戶端之前?理想的是在res.send(data)之後; – greengold