chauffeur

Tool to start up a express server with optional local routes and proxy locations

npm install chauffeur
76 downloads in the last month

Chauffeur

Tool for setting up a development express server that can serve static files, setup test routes, proxy requests, and integrates testable-middleware.

Usage

Here is an example usage of chauffeur.

var chauffeur = require('chauffeur'), config;

config = {
    port: 8000,
    staticFiles: ['public'],
    testable: { route: '/test.html' },
    routes: 'config/routes.js',
    proxy: [
        { path: '/api', host: 'localhost', port: 3000 }
    ]
};

chauffeur(config, function() {
    console.log('Server is started');
});

Config

config.port

The port that the express webserver will run on. Defaults to port 8000.

config.staticFiles

String or array of strings of paths relative to ./. These directories are where static files are served from. In the case of an array, each location is checked in order.

config.routes

String or array of strings of paths relative to ./. These should be javascript should export a function that takes the express app as an argument. The primary use case for this feature is to allow you to stub out requests that would otherwise get proxied to a backend server.

// config/routes.js
module.exports = function(app) {
    app.get('/:resource/:id', function(res, req) {
        var obj = {}; // Load some fixture data or something.
        res.setHeader('Content-Type', 'application/json');
        res.end(JSON.parse(obj));
    });
};

config.proxy

Array of objects. Each object in an array will be evaluated for whether or not it should handle the proxy. Any item that doesn't implement a path key will handle all requests.

proxy: [
    { path: '/api', host: 'localhost', port: 3000 },
    { host: 'localhost', port: 80 }
]

In this example, requests to localhost:8000/api will get proxied to localhost:3000, and all other requests will go to localhost:80.

config.testable

chauffeur integrates testable-middleware, and the object set to config.testable is passed on to testable-middleware. See testable for options that can be passed to testable.

npm loves you