From d64c4a4df6a83359da30eb54e2b94260f341d568 Mon Sep 17 00:00:00 2001 From: siiky Date: Thu, 28 Nov 2024 13:01:09 +0000 Subject: [PATCH] feat: add read/written bytes from/to request/response Based on `count-response-size-middleware`. --- lib/middlewares/addRWBytes.js | 15 +++++++++++++++ lib/routes.js | 4 +++- 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 lib/middlewares/addRWBytes.js diff --git a/lib/middlewares/addRWBytes.js b/lib/middlewares/addRWBytes.js new file mode 100644 index 00000000..46a79275 --- /dev/null +++ b/lib/middlewares/addRWBytes.js @@ -0,0 +1,15 @@ +const addRWBytes = () => (req, res, next) => { + const handle = () => { + res.removeListener('finish', handle) + res.removeListener('close', handle) + res.bytesRead = req.connection.bytesRead + res.bytesWritten = req.connection.bytesWritten + } + + res.on('finish', handle) + res.on('close', handle) + + next() +} + +module.exports = addRWBytes diff --git a/lib/routes.js b/lib/routes.js index 6248fc8e..0d0cb5d0 100644 --- a/lib/routes.js +++ b/lib/routes.js @@ -7,10 +7,11 @@ const nocache = require('nocache') const logger = require('./logger') +const addRWBytes = require('./middlewares/addRWBytes') const authorize = require('./middlewares/authorize') +const computeSchema = require('./middlewares/compute-schema') const errorHandler = require('./middlewares/errorHandler') const filterOldRequests = require('./middlewares/filterOldRequests') -const computeSchema = require('./middlewares/compute-schema') const findOperatorId = require('./middlewares/operatorId') const populateDeviceId = require('./middlewares/populateDeviceId') const populateSettings = require('./middlewares/populateSettings') @@ -50,6 +51,7 @@ const configRequiredRoutes = [ ] // middleware setup +app.use(addRWBytes()) app.use(compression({ threshold: 500 })) app.use(helmet()) app.use(nocache())