Skip to content

nojhamster/stackware

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

stackware

Stackware is a basic connect-style middleware handler for node.js, used for pushing objects through a list of functions, modifying them and handling errors.

Installation

npm install stackware

Usage

  var Stackware = require('stackware');
  var sw        = new Stackware();
  
  sw.use(function middleware1(obj1, obj2, next) {
    obj1.foo = 'bar';
    next();
  });
  sw.use(function middleware2(obj1, obj2, next) {
    obj2.bar = 'foo';
    // stop here
  });
  sw.process(obj1, obj2);

Documentation

Class: Stackware

Create a Stackware object.

var Stackware = require('stackware');
var sw        = new Stackware();

Methods

use(function)

Add a middleware to the stack. It can be either a function or an object providing a handle function. It will be called with the same arguments given to process (see below), plus a callback function which can take an error.

 function Middleware() {}
 Middleware.prototype.handle = function (obj1, obj2, next) { next(); };
 
 // Object with handle function
 sw.use(new Middleware());
 
 // Function
 sw.use(function (obj1, obj2, next) {
   obj1.foo = 'bar';
   next();
 });
 
 sw.process(obj1, obj2);

When the callback is called with an error, further middlewares will be skipped until we reach an error handler. It's basically a middleware with an error argument prepended to the others.

 sw.use(function middleware1(obj, next) {
   next(new Error('Something happened'));
 });
 sw.use(function errorHandler(err, obj, next) {
   console.log(err);
 });
 sw.process(obj);

process(obj1, obj2, ...)

Push any number of objects through the middlewares.
NB: only variables passed by reference can be changed inside the middlewares (i.e. objects, arrays).

About

A basic connect-style middleware handler

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published