ert
v1.0.1
Published
Express routing templates provides a simple micro-templating syntax for building strings from a template and a `request` object.
Downloads
115,746
Readme
ert
Express routing templates provides a simple micro-templating syntax for building strings from a template and a request
object.
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