0.0.5 • Published 7 years ago

express-routing-directives v0.0.5

Weekly downloads
1
License
ISC
Repository
github
Last release
7 years ago

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 under current working directory if starting with module:

License

ISC

0.0.5

7 years ago

0.0.4

8 years ago

0.0.3

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago