Use in Express.js

LiquidJS is compatible to the express template engines. You can set liquidjs instance to the view engine option:

var { Liquid } = require('liquidjs');
var engine = new Liquid();

// register liquid engine
app.engine('liquid', engine.express());
app.set('views', './views'); // specify the views directory
app.set('view engine', 'liquid'); // set liquid to default
Working Demo

Here’s a working demo for LiquidJS usage in Express.js: liquidjs/demo/express/.

Template Lookup

The root option will continue to work as templates root, as you can see in Render A Template File. Additionally, the views option in express.js (as shown above) will also be respected. Say you have a template directory like:

.
├── views1/
│ └── hello.liquid
└── views2/
└── world.liquid

And you’re setting template root for liquidjs to views1 and expressjs to views2:

var { Liquid } = require('liquidjs');
var engine = new Liquid({
root: './views1/'
});

app.engine('liquid', engine.express());
app.set('views', './views2'); // specify the views directory
app.set('view engine', 'liquid'); // set liquid to default

Both of hello.liquid and world.liquid can be resolved and rendered:

res.render('hello')
res.render('world')

Caching

Simply setting the cache option to true will enable template caching, as explained in Caching. It’s recommended to enable cache in production environment, which can be done by:

var { Liquid } = require('liquidjs');
var engine = new Liquid({
cache: process.env.NODE_ENV === 'production'
});