Friendly error pages for humans
This hapi plugin makes it easy to return beautiful HTML error pages to your users.
- Errors in hapi are displayed as JSON by default.
- JSON is good for machines but bad for people.
- Works with AJAX / APIs (respects the
Accept
header).
npm install hapi-error-page --save
Register the plugin on your server to enable friendly error pages.
const hapi = require('hapi');
const vision = require('vision');
const errorPage = require('hapi-error-page');
const server = hapi.server();
const init = async () => {
await server.register([
vision,
errorPage
]);
server.views({
engines : {
html : handlebars
},
relativeTo : __dirname,
path : '.'
});
server.route({
method : 'GET',
path : '/',
handler() {
throw new Error('uh oh');
}
});
await server.start();
console.log('Server ready:', server.info.uri);
};
init();
Visiting the above route will return an HTML error page rendered by Handlebars from a view file named error.html
. You can, of course, use other templating engines instead (see the vision documentation for details).
Please use boom to construct errors instead of new Error()
, so that we can deliver more useful messages. This project will function correctly either way, but boom
is preferred.
See our contributing guidelines for more details.
- Fork it.
- Make a feature branch:
git checkout -b my-new-feature
- Commit your changes:
git commit -am 'Add some feature'
- Push to the branch:
git push origin my-new-feature
- Submit a pull request.
Go make something, dang it.