Render nice error pages with Express.
MIT License
Render nice error pages with Express.
This library requires the following to run:
Install with npm:
npm install @rowanmanning/render-error-page
Load the library into your code with a require
call:
const renderErrorPage = require('@rowanmanning/render-error-page');
Create the error rendering middleware and add it as the very last one to your Express app (more details available in this Express guide):
const express = require('express');
const renderErrorPage = require('@rowanmanning/render-error-page');
const app = express();
app.get('/', (request, response, next) => {
next(new Error('Oops'));
});
// Your error page!
app.use(renderErrorPage());
renderErrorPage
relies on the Express built-in rendering method: response.render
. You'll need to create an error
view in your Express application. Where and how you do this depends on what your view rendering setup is. Normally it'll be a file like:
views/error.html
Replace .html
above with the correct file extension for your views. Once you've done this, you can access the following view data:
error.code
: the value of the code
property of the error, if present
error.message
: the actual error message
error.name
: the value of the name
property of the error, e.g. Error
or TypeError
error.stack
: the full error stack (if made available based on options)
error.status
: the HTTP status code of the error (taken from the original error's statusCode
or status
properties)
error.statusCode
: alias of error.status
error.statusMessage
: the HTTP status message which corresponds to error.status
, e.g. an error status of 404
would result in Not Found
An example in Handlebars:
<h1>Error {{error.statusCode}}</h1>
<p>{{error.message}}</p>
{{#if error.stack}}
<pre>{{error.stack}}</pre>
{{/if}}
If your template cannot be rendered for some reason, then a basic fallback template will be used instead.
You can configure the middleware using a few different options:
app.use(renderErrorPage({
exampleOption: true
}));
The available options are:
errorView
: the name of the view to render when an error occurs, relative to the Express views
directory. Defaults to "error"
includeErrorStack
: a boolean indicating whether to include the error stack in the output. Defaults to false
if the NODE_ENV
environment variable is set to "production"
, or true
otherwise
A new major version of this project is released if breaking changes are introduced. We maintain a migration guide to help users migrate between these versions.
The contributing guide is available here. All contributors must follow this library's code of conduct.
Licensed under the MIT license. Copyright © 2019, Rowan Manning