failing gracefully

DTVE 1.5







October 2013
Hunter Loftis <hunter@skookum.com>


  1. Defensive Jade
  2. Central Error Handling
  3. Custom / Standard Error Pages
  4. Monitoring

defensive jade

Most errors = undefined locals

  1. Local helpers    (eg, safely())            
    each movie in safely(user.movies, []) 
  2. Branching    (eg, locals.*)
    if locals.property 
    p Hello #{ property }
    else
    p Property is missing!
  3. Combined 1 & 2

central error handling

Pass an error to next() and return from your middleware


custom error pages

app/shared/errorHandlers/404.jade
app/shared/errorHandlers/500.jade

(Exact same functionality as any other jade templates.)


Modify config to enable or disable
stack traces on error:
dump_errors: true // false 

monitoring (beyond regular logs)

Nodetime.com (cloud-based monitoring & profiling)
nodetime_enabled: true 

Graphite (time-series graphing)
statsd_enabled: true 

examples

app/examples/examples.js

failing gracefully

By hunterloftis

failing gracefully

  • 1,020