PageRenderTime 43ms CodeModel.GetById 18ms RepoModel.GetById 1ms app.codeStats 0ms

/lib/error-handlers.js

https://github.com/shwaydogg/node-gtfs
JavaScript | 78 lines | 57 code | 12 blank | 9 comment | 12 complexity | 8c157381b77caef53b232ee9cd9e4313 MD5 | raw file
  1. var errors = require('./util/errors');
  2. module.exports = function(app){
  3. /**
  4. * 404 Not Found
  5. */
  6. app.error(function(err, req, res, next){
  7. if (!app.set('error templates') || !(err instanceof errors.NotFound))
  8. return next(err);
  9. if (req.xhr){
  10. res.send(404);
  11. } else {
  12. res.render('error.jade'
  13. , { layout: false
  14. , status: 404
  15. , locals:
  16. { status: 404
  17. , title: 'Not Found'
  18. , text: '404 Error (File not Found)'
  19. }
  20. }
  21. );
  22. }
  23. });
  24. /**
  25. * 401 Unauthorized
  26. */
  27. app.error(function(err, req, res, next){
  28. if (!app.set('error templates') || !(err instanceof errors.Unauthorized))
  29. return next(err);
  30. if (req.xhr){
  31. res.send(401);
  32. } else {
  33. res.render('error.jade'
  34. , { layout: false
  35. , status: 401
  36. , locals:
  37. { status: 401
  38. , title: 'Unauthorized'
  39. , text: '401 Error (Unauthorized)'
  40. }
  41. }
  42. );
  43. }
  44. });
  45. /**
  46. * 500 Internal Server Error
  47. */
  48. app.error(function(err, req, res, next){
  49. if (!app.set('error templates')) return next(err);
  50. if (req.xhr){
  51. res.send(500);
  52. } else {
  53. res.render('error.jade'
  54. , { layout: false
  55. , status: 500
  56. , locals:
  57. { status: 500
  58. , title: 'Internal Server Error'
  59. , text: 'Error in our app :( <br> Let us track this down'
  60. }
  61. }
  62. );
  63. }
  64. console.error(err.stack || err);
  65. });
  66. };