diff options
Diffstat (limited to 'part4/blog/utils/middleware.js')
-rw-r--r-- | part4/blog/utils/middleware.js | 32 |
1 files changed, 32 insertions, 0 deletions
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 +} |