ert

Express routing templates provides a simple micro-templating syntax for building strings from a template and a `request` object.

npm install ert
91 downloads in the last day
433 downloads in the last week
2 507 downloads in the last month

ert

Express routing templates provides a simple micro-templating syntax for building strings from a template and a request object.

Build Status Dependency Status

Installation

$ npm install ert

Usage

var ert = require('ert');
var express = require('express');
var app = express();

app.get('/:package', function (req, res) {
  res.redirect(ert(req, '/package/:package'));
});

app.listen(3000);

Syntax

Code Blocks

e.g.

ert(req, '/foo/bar/[req.parms.x || "default-x"]')

Code in squre brackets ([ and ]) is evalutated as a JavaScript expression. It has req available as an object. It also supports shortcuts, so you could write the above as:

ert(req, '/foo/bar/[:x || "default-x"]')

Shortucts

There are characters that are shortucts, the defaults of these are:

exports.shortcutMap = {
  ':': 'req.params',
  '$': 'req.query',
  '@': 'req.body'
};

These can be used directly like:

ert(req, '/foo/bar/:x')

which is equivallent to:

ert(req, '/foo/bar/[req.params && req.params["x"]]')

API

ert(req, src) or ert.translate(req, src)

Transforms the string with req and returns the resulting string. It caches the compiled function so should be pretty good for performance.

ert.compile(src)

Compiles src and returns a JavaScript expression as a string. This can be used to generate client side code with something like:

function client(name) {
  return 'function name(req){return ' + ert.compile(src) + '}';
}

ert.compileFn(src)

Compiles src and returns a function which expects a single argument, request.

License

MIT

npm loves you