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