Application from Chapter 21 of Professional Node.js Book.