2.0.0 • Published 6 years ago

diet-500 v2.0.0

Weekly downloads
3
License
MIT
Repository
github
Last release
6 years ago

diet-500

Emergency Exits for Diet.js

If you're trying to use Promises in Diet you may have noticed that you can't just throw an error to trigger a 500 Sever Error, since it ends up swallowed by the Promise chain. As far as I can tell, there's no way to directly call the error route in Diet.js.

This module provides middleware to add a method to the signal object ($) to throw an error out of a Promise chain.

Installation

npm install --save diet-500

Note that in modern versions of NPM (>= 5) you don't actually need the --save flag.

Usage

const server      = require('diet')
const serverError = require('diet-500')

app = server()

app.listen('http://localhost:8888')

app.header(serverError)

app.get('/', function ($) {
	return Promise.resolve().then(() => {
		throw new Error('Time to die!')
	}).catch(err => {
		$.err(err)
	})
})

By default, the method attached to the signal is err. You can specify a different method name if you like.

const server      = require('diet')
const serverError = require('diet-500').methodName('error500')

app = server()

app.listen('http://localhost:9999')

app.header(serverError)

app.get('/', function ($) {
	return Promise.reject(new Error('GOING DOWN'))
	.catch(err => {
		$.error500(err)
	})
})