|
|
|
const handleDuplicateKeyError = (err, res) => { |
|
const field = Object.keys(err.keyValue); |
|
const code = 409; |
|
const error = `An document with that ${field} already exists.`; |
|
console.log('congrats you hit the duped keys error'); |
|
res.status(code).send({ messages: error, fields: field }); |
|
}; |
|
|
|
|
|
const handleValidationError = (err, res) => { |
|
console.log('congrats you hit the validation middleware'); |
|
let errors = Object.values(err.errors).map((el) => el.message); |
|
let fields = Object.values(err.errors).map((el) => el.path); |
|
let code = 400; |
|
if (errors.length > 1) { |
|
const formattedErrors = errors.join(' '); |
|
res.status(code).send({ messages: formattedErrors, fields: fields }); |
|
} else { |
|
res.status(code).send({ messages: errors, fields: fields }); |
|
} |
|
}; |
|
|
|
|
|
module.exports = (err, req, res, next) => { |
|
try { |
|
console.log('congrats you hit the error middleware'); |
|
if (err.name === 'ValidationError') { |
|
return (err = handleValidationError(err, res)); |
|
} |
|
if (err.code && err.code == 11000) { |
|
return (err = handleDuplicateKeyError(err, res)); |
|
} |
|
} catch (err) { |
|
res.status(500).send('An unknown error occurred.'); |
|
} |
|
}; |
|
|