dispatcher.js 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. // generic error dispatching
  2. module.exports = function dispatch(opt, resources, page, httpStatusCode, err){
  3. // page available ?
  4. if (!resources.pages[page]){
  5. // use "internal server error" as default
  6. page = '500';
  7. httpStatusCode = null;
  8. }
  9. // extract page date
  10. // page found ? fallback in case http500 template not exists
  11. const pageData = resources.pages[page] || {
  12. title: 'Internal Server Error',
  13. message: 'Additionally, FileNotFound was encountered while trying to use an ErrorDocument to handle the request'
  14. };
  15. // create template variables
  16. const templateVars = Object.assign({}, {
  17. title: pageData.title,
  18. message: pageData.message,
  19. code: httpStatusCode || 500,
  20. language: opt.lang.substr(0, 2),
  21. error: err
  22. }, opt.payload);
  23. // debug error handler set ?
  24. if (opt.onError){
  25. opt.onError(templateVars);
  26. }
  27. return {
  28. pageData: pageData,
  29. templateVars: templateVars
  30. };
  31. }