1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- const _pages = require('../dist/pages.json');
- const _renderer = require('./page-renderer');
- // multi-type support
- // @see https://github.com/expressjs/express/blob/master/examples/error-pages/index.js
- function dispatchRequest(page, httpStatusCode, req, res){
- // page available ?
- if (!_pages[page]){
- // use "internal server error" as default
- page = '500';
- httpStatusCode = null;
- }
- // set http status code
- res.status(httpStatusCode || 500);
- // extract page date
- const pageData = _pages[page];
- // multiple response formats
- res.format({
- // standard http-error-pages
- html: function(){
- res.type('.html');
- res.send(_renderer({
- code: httpStatusCode,
- title: pageData.title,
- message: pageData.message
- }))
- },
- // json
- json: function(){
- res.json({
- error: pageData.title + ' - ' + pageData.message
- })
- },
- // text response
- default: function(){
- // plain text
- res.type('.txt').send(pageData.title + ' - ' + pageData.message);
- }
- })
- }
- module.exports = dispatchRequest;
|