@coko/server
Version:
Reusable server for use by Coko's projects
36 lines (27 loc) • 1.01 kB
JavaScript
const { StatusCodes } = require('http-status-codes')
const logger = require('../logger')
const errorStatuses = app => {
app.use((err, req, res, next) => {
// Development error handler, will print stacktrace
if (app.get('env') === 'development' || app.get('env') === 'test') {
logger.error(err)
logger.error(err.stack)
}
if (err.name === 'ValidationError') {
return res.status(StatusCodes.BAD_REQUEST).json({ message: err.message })
}
if (err.name === 'ConflictError') {
return res.status(StatusCodes.CONFLICT).json({ message: err.message })
}
if (err.name === 'AuthorizationError') {
return res.status(err.status).json({ message: err.message })
}
if (err.name === 'AuthenticationError') {
return res.status(StatusCodes.UNAUTHORIZED).json({ message: err.message })
}
return res
.status(err.status || StatusCodes.INTERNAL_SERVER_ERROR)
.json({ message: err.message })
})
}
module.exports = errorStatuses