http-assert
Assert with status codes. Like ctx.throw() in Koa, but with a guard.
Install
This is a Node.js module available through the npm registry. Installation is done using the npm install command:
$ npm install http-assert 
Example
var assert = require('http-assert')
var ok = require('assert')
var username = 'foobar' // username from request
try {
  assert(username === 'fjodor', 401, 'authentication failed')
} catch (err) {
  ok(err.status === 401)
  ok(err.message === 'authentication failed')
  ok(err.expose)
} 
API
The API of this module is intended to be similar to the Node.js assert module.
Each function will throw an instance of HttpError from the http-errors module when the assertion fails.
assert(value, [status], [message], [properties])
Tests if value is truthy. If value is not truthy, an HttpError is thrown that is constructed with the given status, message, and properties.
assert.deepEqual(a, b, [status], [message], [properties])
Tests for deep equality between a and b. Primitive values are compared with the Abstract Equality Comparison (==). If a and b are not equal, an HttpError is thrown that is constructed with the given status, message, and properties.
assert.equal(a, b, [status], [message], [properties])
Tests shallow, coercive equality between a and b using the Abstract Equality Comparison (==). If a and b are not equal, an HttpError is thrown that is constructed with the given status, message, and properties.
assert.notDeepEqual(a, b, [status], [message], [properties])
Tests for deep equality between a and b. Primitive values are compared with the Abstract Equality Comparison (==). If a and b are equal, an HttpError is thrown that is constructed with the given status, message, and properties.
assert.notEqual(a, b, [status], [message], [properties])
Tests shallow, coercive equality between a and b using the Abstract Equality Comparison (==). If a and b are equal, an HttpError is thrown that is constructed with the given status, message, and properties.
assert.notStrictEqual(a, b, [status], [message], [properties])
Tests strict equality between a and b as determined by the SameValue Comparison (===). If a and b are equal, an HttpError is thrown that is constructed with the given status, message, and properties.
assert.ok(value, [status], [message], [properties])
Tests if value is truthy. If value is not truthy, an HttpError is thrown that is constructed with the given status, message, and properties.
assert.strictEqual(a, b, [status], [message], [properties])
Tests strict equality between a and b as determined by the SameValue Comparison (===). If a and b are not equal, an HttpError is thrown that is constructed with the given status, message, and properties.