Tool for setting up a development express server that can serve static files, setup test routes, proxy requests, and integrates testable-middleware.
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');
});
The port that the express webserver will run on. Defaults to port 8000.
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.
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));
});
};
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.
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.