New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

express-youch

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

express-youch

Express middleware for youch

latest
Source
npmnpm
Version
1.0.1
Version published
Maintainers
1
Created
Source

Beautiful error reporting for express

Build Status

Beautiful, spec-compliant error reporting for express.

What does this do?

This express middleware simplifies debugging errors in express applications by presenting errors in a developer-friendly way.

Features:

  • Beautiful HTML error reports thanks to youch
  • Respects the Accept HTTP header
  • Hides sensitive information when running in production
  • Compatible with other error middleware (custom error pages, custom error logging, ...)

Usage

npm install express-youch
const { errorReporter } = require('express-youch');

app.use(errorReporter());

Configuration options

Add custom links to the error report.

app.use(errorReporter({
    links: [
        ({message}) =>{
            const url = `https://stackoverflow.com/search?q=${encodeURIComponent(`[adonis.js] ${message}`)}`;
            return `<a href="${url}" target="_blank" title="Search on stackoverflow">Search stackoverflow</a>`;
        }
    ]
}));

Recepies

How do I customize the error pages?

When running in production (ie. when the NODE_ENV environment variable is set to production.), express-youch will delegate HTML errors to the next error reporting middleware. Here is a basic example:

const { errorReporter } = require('express-youch');

// First, pass the errors to the error reporter
app.use(errorReporter());

// Then add some custom handling logic
app.use(function (error, req, res, next) {
    if (!res.headersSent) {
        // If we get to this point, that means express-youch decided to delegate response rendering to the 
        // next handler in the chain. You can safely assume the client wants an HTML response here.
        res .status(error.statusCode)
            .render('error-page', { error });
    } else {
        next(error);
    }
});

The error object contains the properties statusCode and message, which you may use to create different error pages for different error types.

How to better manage my errors

You should us a combination of an asynchronous express router such as this one and the async/await syntax to make sure no errors leak outside of your control. Read this blog post to learn more about error handling in express.

FAQs

Package last updated on 10 Feb 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts