express-group

Group express routes and middleware

npm install express-group
4 downloads in the last month

express-group

Group express routes and middleware globally throughout your application to DRYly structure your web applications.

All groups are shared globally throughout your application, so that each file has access to all groups simply by requiring this module.

Setup

Install with npm install express-group and then do var group = require('express-group'); in your express applications.

Usage

create groups

You can add functions to a named group with:

group('index', function (req, res, next) {
  console.log('log request');
  next();
});

group('index', function (req, res, next) {
  console.log('check params');
  next();
});

group('index', function (req, res, next) {
  console.log('send response');
  res.send(200);
});

use groups

And then assign the whole group to a route with:

app.get('/', group('index'));

Just be sure to always define params req, res and next and call next() or send the response.

group groups

You can also add existing groups to groups:

// Create checkLogin group

group('checkLogin', function (req, res, next) {
  console.log('check input parameters')
  next();
});
group('checkLogin', function (req, res, next) {
  console.log('load user object from database');
  next();
});
group('checkLogin', function (req, res, next) {
  console.log('check login')
  next();
})


// now add checkLogin to routes

group('editProfile', group('checkLogin'));
group('editProfile', function (req, res, next) {
  // user is logged in
  res.send(200);
});

group('adminArea', group('checkLogin'));
group('adminArea', function (req, res, next) {
  // user is logged in
  res.send(200);
});

group middleware

connect and express middleware seamlessly integrates with express-group:

group('parseRequest', express.query());
group('parseRequest', express.bodyParser());

group('processForm', group('parseRequest'));
group('processForm', function (req, res, next) {
  // use the parsed request here
  next();
});

group arrays

The above example can also be written using arrays:

group('parseRequest', [
  express.query(),
  express.bodyParser()
]);

group('processForm', [
  group('parseRequest'),
  function (req, res, next) {
    // use the parsed request here
    next();
  }
]);

dump groups

Calling group() without parameters will dump all registered groups.

npm loves you