From ce675c68ab3cf864c899001ac137f5c3379153f6 Mon Sep 17 00:00:00 2001 From: "Marc S. Brooks" Date: Thu, 30 May 2024 21:52:49 -0700 Subject: [PATCH] Refactor Router error handling --- server.js | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/server.js b/server.js index 51e1525..f446c2e 100755 --- a/server.js +++ b/server.js @@ -26,7 +26,7 @@ program .option('--handler ', 'Lambda@Edge handler script.') .option('--port ', 'HTTP server port number.', SERVER_PORT) - .option('--silent', 'Disable logging events to STDOUT') + .option('--silent', 'Disable logging Router errors to STDOUT', false) .action(function(opts) { const errors = []; @@ -84,14 +84,14 @@ if (process.env.NODE_ENV === 'test') { * @param {Function} port * HTTP server port number. * - * @param {Boolean} logEvents - * Log events to STDOUT (default: true). + * @param {Boolean} logRouterError + * Log Router errors to STDOUT (default: true). * * @return {Object} * * @see https://docs.aws.amazon.com/lambda/latest/dg/nodejs-handler.html */ -function initServer(handler, port, logEvents = true) { +function initServer(handler, port, logRouterError = true) { const server = http.createServer(function(req, res) { let body = ''; @@ -167,28 +167,21 @@ function initServer(handler, port, logEvents = true) { log(Date.now(), req.method, path, JSON.stringify(event)); } catch (err) { - this.emit('error', Error('Malformed handler method. Exiting..')); + logRouterError && this.emit('error', err); } }); }); - // Log event to STDOUT. - const log = function() { - if (logEvents) { - console.log(...arguments); - } - }; - // Start HTTP server; increment port if used. return server .listen(port, () => { - log(`HTTP server started. Listening on port ${port}`); + console.info(`HTTP server started. Listening on port ${port}`); }) .on('error', function(err) { if (err.code === 'EADDRINUSE') { this.close(); - log(`Port ${port} in use. Trying another port.`); + console.error(`Port ${port} in use. Trying another port.`); initServer(handler, port + 1); }