Package Exports
- feathers-errors
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (feathers-errors) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
feathers-errors 
Error handling mixin for Feathers apps.
Getting Started
Feathers errors come with feathers by default. So typically you don't need to install it at all. However you can also use feathers-errors with express directly as well. In that case you install the module with: npm install feathers-errors --save
With Feathers
var feathers = require('feathers');
var memory = require('feathers-memory');
var app = feathers()
.use('/users', memory)
.configure(feathers.errors());With Express
var app = require('express');
var errors = require('feathers-errors');
var app = express()
.use(errors.fourOhFour)
.use(errors.handler);Pro Tip: Just like express middleware, order matters. So your error handling should typically be configured last.
Documentation
Current Error Types:
BadRequest: 400NotAuthenticated: 401PaymentError: 402Forbidden: 403NotFound: 404MethodNotAllowed: 405NotAcceptable: 406Timeout: 408Conflict: 409Unprocessable: 422GeneralError: 500NotImplemented: 501Unavailable: 503
Pro Tip: Feathers service adapters (ie. mongodb, memory, etc.) already emit the appropriate errors for you. :-)
Usage:
var feathers = require('feathers');
var app = feathers();
var userService = {
find: function(params, callback) {
// If you were to create an error yourself.
callback(new this.app.errors.NotFound('User does not exist'));
// You can also simply do something like this if you
// just want to fire back a simple 500 error with your
// custom message.
//
// callback('A generic server error');
},
setup: function(app){
this.app = app;
}
};
app.use('/users', userService)
.configure(feathers.errors());404 Handling:
We have conveniently created a basic 404 middleware already for you. If you want to override it, do this:
var feathers = require('feathers');
var app = feathers();
app.use('/users', userService)
.configure(feathers.errors({
fourOhFour: function(req, res, next){
// Handle your 404's some special way
}
}));Custom Error Handling:
We already have an error handler that gets added to the middleware stack when you call feathers.errors(). However, if you want customize how you handle errors you can do so like this:
var feathers = require('feathers');
var app = feathers();
app.use('/users', userService)
.configure(feathers.errors({
handler: function(req, res, next){
// Handle your errors the way you want
}
}));Examples
See examples directory.
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
Release History
0.2.0
- Adding support for mongoose errors Issue #5.
0.1.4
- Adding more error types
- Changing
missingtofourOhFour - Making library feathers core compatible
0.1.3
- Adding a default error page
0.1.2
- Minor bug fixes
0.1.1
- Exposing error types directly via
var types = require('feathers-errors').types;
0.1.0
- Initial release
License
Copyright (c) 2014 Eric Kryski Licensed under the MIT license.