use a separate error handler for api router errors

This commit is contained in:
Brian Gough 2017-05-19 16:36:29 +01:00
parent 76b8fecde9
commit 5ac2ed8fc6
2 changed files with 10 additions and 1 deletions

View file

@ -28,3 +28,11 @@ module.exports = ErrorController =
else
logger.error err: error, url:req.url, method:req.method, user:user, "error passed to top level next middlewear"
ErrorController.serverError req, res
handleApiError: (error, req, res, next) ->
if error instanceof Errors.NotFoundError
logger.warn {err: error, url: req.url}, "not found error"
res.sendStatus(404)
else
logger.error err: error, url:req.url, method:req.method, user:user, "error passed to top level next middlewear"
res.sendStatus(500)

View file

@ -164,11 +164,12 @@ server = require('http').createServer(app)
# process api routes first, if nothing matched fall though and use
# web middlewear + routes
app.use(apiRouter)
app.use(ErrorController.handleApiError)
app.use(webRouter)
app.use(ErrorController.handleError)
router = new Router(webRouter, apiRouter)
app.use ErrorController.handleError
module.exports =
app: app