@rowanmanning/render-error-page v7.1.0
@rowanmanning/render-error-page
Render nice error pages with Express.
Requirements
This library requires the following to run:
- Node.js 20+
Usage
Install with npm:
npm install @rowanmanning/render-error-pageLoad 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.htmlReplace .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 thecodeproperty of the error, if presenterror.message: the actual error messageerror.name: the value of thenameproperty of the error, e.g.ErrororTypeErrorerror.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'sstatusCodeorstatusproperties)error.statusCode: alias oferror.statuserror.statusMessage: the HTTP status message which corresponds toerror.status, e.g. an error status of404would result inNot 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.
Options
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 Expressviewsdirectory. Defaults to"error"includeErrorStack: a boolean indicating whether to include the error stack in the output. Defaults tofalseif theNODE_ENVenvironment variable is set to"production", ortrueotherwise
Migration
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.
Contributing
The contributing guide is available here. All contributors must follow this library's code of conduct.
License
Licensed under the MIT license. Copyright © 2019, Rowan Manning
8 months ago
6 months ago
8 months ago
10 months ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago