2 Handle a server error
Scott Erickson edited this page 2016-04-29 11:22:45 -07:00

Problem

Your route needs to handle an error, stopping execution and returning an HTTP error code and message.

Solution

Create a new NetworkError object from errors (bottom of file). If you are in middleware or a synchronous function, throw it. If you are in an asynchronous function, call the callback with it.

Details

Joyent has a long document on proper error handling in Node, which is well worth reading. In particular: functions should either handle errors synchronously or asynchronously. Be aware that functions you call may throw an exception, and are not called in a co-express wrapped function, need to be handled manually (co-express catches errors and passes them to express' next function to be handled by error middleware).

Invalid input errors, such as not providing a property or parameter that is required, are returned with status code 422, Unprocessable Entity.