Something went wrong. Try again.
VueTube is a YouTube clone built with nodejs, expressjs & mongodb. This is the RESTful API repository.
Something went wrong. Try again.
1.1 kB · 46 lines
JavaScript
at master
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647const ErrorResponse = require('../utils/errorResponse')
const errorHandler = (err, req, res, next) => { let error = { ...err }
error.message = err.message
// console.log(err.stack.red); console.log(err)
// Mongoose bad ObjectId if (err.name === 'CastError') { // const message = `Resource not found with id of ${err.value}`; const message = `Resource not found` error = new ErrorResponse(message, 404) } // console.log(err.name);
// Mongoose duplicate key if (err.code === 11000) { const message = 'Duplicate field value entered' console.log(err) error = new ErrorResponse(message, 400) }
// Mongoose validation error if (err.name === 'ValidationError') { const message = [] Object.values(err.errors).forEach(errr => { message.push({ field: errr.properties.path, message: errr.message }) }) error = new ErrorResponse(null, 400, message) }
res.status(error.statusCode || 500).json({ success: false, error: error.messageWithField || error.message || 'Server Error' })}
module.exports = errorHandler