From 1e59b6aa6fc83cb239a5ea7d2b5389e28a2c1261 Mon Sep 17 00:00:00 2001 From: Andrey Frimuchkov Date: Wed, 2 Dec 2020 23:17:36 +0300 Subject: [PATCH] fix: doubled request logs in node.js >= 11 (#2012) ``` $ docker run -it --rm --name verdaccio -p 4873:4873 verdaccio/verdaccio warn --- config file - /verdaccio/conf/config.yaml warn --- Verdaccio started warn --- Plugin successfully loaded: verdaccio-htpasswd warn --- Plugin successfully loaded: verdaccio-audit warn --- http address - http://0.0.0.0:4873/ - verdaccio/4.9.1 http --> 200, req: 'GET https://registry.npmjs.org/execa' (streaming) http --> 200, req: 'GET https://registry.npmjs.org/execa', bytes: 0/119164 http <-- 200, user: null(172.17.0.1), req: 'GET /execa', bytes: 0/27224 http <-- 200, user: null(172.17.0.1), req: 'GET /execa', bytes: 0/27224 ``` --- src/api/middleware.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/api/middleware.ts b/src/api/middleware.ts index 69d21dfdc..7ab2be2ac 100644 --- a/src/api/middleware.ts +++ b/src/api/middleware.ts @@ -216,7 +216,13 @@ export function log(req: $RequestExtend, res: $ResponseExtend, next: $NextFuncti _write.apply(res, arguments); }; + let logHasBeenCalled = false; const log = function(): void { + if (logHasBeenCalled) { + return; + } + logHasBeenCalled = true; + const forwardedFor = req.headers['x-forwarded-for']; const remoteAddress = req.connection.remoteAddress; const remoteIP = forwardedFor ? `${forwardedFor} via ${remoteAddress}` : remoteAddress;