express-routing-directives v0.0.5
express-routing-directives
A collection of directives aimed at providing a convenient and easy to manage way of configuring express routes.
import * as express from 'express';
import { action, assets, file } from 'express-routing-directives';
const app = express();
app.get('/', file('index.html'));
app.get('/todos', action('todos#list'));
app.use('/assets', assets('bower_components'));
app.listen(3000, function () {
console.log('App listening on port 3000');
});
Installation
$ npm install --save express-routing-directives
Usage
express-routing-directives
could be seemlessly used with
TypeScript. Declaration files are bundled within
the npm package.
To import a directive, for example file
, in TypeScript, you can write:
import { file } from 'express-routing-directives';
If you don't use TypeScript, you can instead write:
var file = require('express-routing-directives').file;
Directives
action(locator: string)
Find request handler given by the locator
.
A locator has two parts, splitted by a hash sign. The first part is the path of
the target module file, relative to the directory of current file. Colons,
instead of slashes, are used to split directories. The second part is the export
name of the target module. If it is omitted along with the hash sign, the
default export (exports.default
or module.exports
) is used.
import * as express from 'express';
import { action } from 'express-routing-directives';
const app = express();
app.post('/login', action('authenticate'));
app.get('/todos', action('todos#list'));
app.post('/todos', action('todos#create'));
app.put('/todos/:id', action('todos#update'));
app.delete('/todos/:id', action('todos#delete'));
app.get('/stats/todos', action('stats:todos'));
app.listen(3000, function () {
console.log('App listening on port 3000');
});
assets(path: string)
Map a URL to a file in the directory given by the argument path
and send it to
the client. If no file could be found, it passes request to the next
middleware function.
import * as express from 'express';
import { assets } from 'express-routing-directives';
const app = express();
app.use('/', assets('public'));
app.use('/assets', assets('bower_components'));
app.listen(3000, function () {
console.log('App listening on port 3000');
});
file(path: string)
Send a static file to the client.
import * as express from 'express';
import { file } from 'express-routing-directives';
const app = express();
app.get('/', file('index.html'));
app.listen(3000, function () {
console.log('App listening on port 3000');
});
Path Resolution
All directives requiring a path
argument follow the same resolution rule:
- relative to the current file by default
- relative to
current working directory
if starting with~/
- relative to
node_modules
directory undercurrent working directory
if starting withmodule: