From 81c9e17aebc95f0939c5b636ca64af9d47dfc992 Mon Sep 17 00:00:00 2001 From: Ibrahim Mkusa Date: Sun, 18 Jun 2023 20:26:14 -0400 Subject: ex4.2 tackling complexity via modularity --- part4/blog/utils/logger.js | 11 +++++++++++ part4/blog/utils/middleware.js | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100644 part4/blog/utils/logger.js create mode 100644 part4/blog/utils/middleware.js (limited to 'part4/blog/utils') diff --git a/part4/blog/utils/logger.js b/part4/blog/utils/logger.js new file mode 100644 index 0000000..f4b4c78 --- /dev/null +++ b/part4/blog/utils/logger.js @@ -0,0 +1,11 @@ +const info = (...params) => { + console.log('info: ', ...params) +} + +const error = (...params) => { + console.log('error: ', ...params) +} + +module.exports = { + info, error +} diff --git a/part4/blog/utils/middleware.js b/part4/blog/utils/middleware.js new file mode 100644 index 0000000..1b2979a --- /dev/null +++ b/part4/blog/utils/middleware.js @@ -0,0 +1,32 @@ +const logger = require('./logger.js') + +const requestLogger = (request, response, next) => { + logger.info('Method:', request.method) + logger.info('Path: ', request.path) + logger.info('Body: ', request.body) + logger.info('---') + next() +} + +const unknownEndpoint = (request, response) => { + response.status(404).send({ error: 'unkown endpoint' }) +} + +const errorHandler = (error, request, response, next) => { + logger.error(error.message) + + if (error.name === 'CastError') { + return response.status(400).send( {error: 'malformatted id'} ) + + } else if (error.name === 'ValidationError') { + return response.status(400).json({error: 'error.message'}) + } + + next(error) +} + +module.exports = { + requestLogger, + unknownEndpoint, + errorHandler +} -- cgit v1.2.3