express.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. const _express = require('express');
  2. const _webapp = _express();
  3. // use require('http-error-pages') for regular apps!
  4. const _httpErrorPages = require('../lib/main');
  5. async function bootstrap(){
  6. // demo handler
  7. _webapp.get('/', function(req, res){
  8. res.type('.txt').send('HttpErrorPages Demo');
  9. });
  10. // throw an 403 error
  11. _webapp.get('/my403error', function(req, res, next){
  12. const myError = new Error();
  13. myError.status = 403;
  14. next(myError);
  15. });
  16. // throw an unknown error
  17. _webapp.get('/unknown', function(req, res, next){
  18. const myError = new Error();
  19. myError.status = 523;
  20. next(myError);
  21. });
  22. // throw an internal error
  23. _webapp.get('/500', function(req, res){
  24. throw new Error('Server Error');
  25. });
  26. // use http error pages handler (final statement!)
  27. // because of the asynchronous file-loaders, wait until it has been executed
  28. await _httpErrorPages.express(_webapp, {
  29. lang: 'en_US',
  30. payload: {
  31. footer: 'Hello <strong>World</strong>',
  32. pagetitle: 'we are sorry - an internal error encountered',
  33. },
  34. filter: function(data){
  35. // remove footer
  36. //data.footer = null;
  37. return data;
  38. },
  39. onError: function(data){
  40. // for debugging purpose only!!
  41. // use custom middleware for errorlogging!!
  42. console.log(`[expressjs] ERROR: ${data.title}\n${data.error.stack}`)
  43. }
  44. });
  45. // start service
  46. _webapp.listen(8888);
  47. }
  48. // invoke bootstrap operation
  49. bootstrap()
  50. .then(function(){
  51. console.log('Running Demo on Port 8888');
  52. })
  53. .catch(function(e){
  54. console.error(e);
  55. });