node-distributor

1.0.4 • Public • Published

node-distributor

node-distributor is a simple tool to gather requests in one place and redirect them to various other servers using express.

Installation

Using npm:

$ npm i -g npm
$ npm i node-distributor

Usage in Node.js

Create a simple server, that accepts requests on http://server.com:5000/api and redirects them to server2 or server3 on the rest of the url path. A request to http://server.com:5000/api/route1 will be redirected to server2.

var NodeDistributor = require('node-distributor');

/* NOTE:    - errors will always be printed
            - pathPrefix, ssl, key and cert are not required*/
var opts = {
    port: 5000,         // port to listen on; default: 5000
    verbose: false,     // print some infos and warnings; default: false
    pathPrefix: '/api', // default: '/api'
    ssl: false,         // tell ND explicitly to use key and cert; defaul: false
    key: '',            // path to key file
    cert: ''            // path to certificate file
 };

var nd = new NodeDistributor(opts);

var routes = [
    {
        urlPath: '/route1',                 // don't forget the leading slash
        host: 'https://server2.com:1234'    // format: 'address:port'
    },
    {
        urlPath: '/route2',
        host: 'http://server3.com:1234'
    }
];
var app = nd.createListener(routes);
var server = nd.createServer(app);

In order to use middleware functions before or after redirecting requests:

var before = [
    funtion(req, res, next) {
        console.log('request received');
        next();
    }
];

var after = [
    function(req, res, next) {
        console.log('the route was not found');
        next();
    }
];

var app = nd.createListener(routes, before, after);

node-distributor will respond with HTTP 404 by itself, if a route is not found. The function declared in before will be executed before the request is redirected and the function declared in after will executed after a the request was returned (due to an error, so no response was sent).

Readme

Keywords

Package Sidebar

Install

npm i node-distributor

Weekly Downloads

0

Version

1.0.4

License

MIT

Unpacked Size

7.95 kB

Total Files

4

Last publish

Collaborators

  • newfap