Getting Liquid-Node and Express to play nicely

Liquid-Node is a promise-based template language which is useful to create templates after async database calls (amongst other things). There isn't in-built support for ExpressJS.

What is the best way of getting Express to use Liquid-Node as its view engine?

The best I've come up with uses vow-fs for fs promises (in Livescript), and assumes views are called with the extension '.liquid':

vowfs = require \vow-fs
Liquid = require \liquid-node

app.engine \.liquid, (filename, options, fn) ->
  vowfs.read filename
  .then (res) ->
    content = res.toString!
    template = Liquid.Template.parse content
    template.render options
  .then (res) -> fn null, res