npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@rowanmanning/render-error-page

v6.2.3

Published

Render nice error pages with Express

Downloads

13

Readme

@rowanmanning/render-error-page

Render nice error pages with Express.

Table of Contents

Requirements

This library requires the following to run:

Usage

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.

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 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

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