ghosttrain
v0.0.5
Published
Client-side router in the spirit of Express, for mock data, development and demos.
Downloads
14
Readme
GhostTrain
Client-side router in the spirit of Express for mock data, development and demos.
Usage
Set up a ghosttrain
instance
var ghosttrain = new GhostTrain();
Set up routes
var users = {
'1': {
name: 'Ozzie Isaacs',
skills: ['Planet Riding']
}
}
ghosttrain.get('/users/:id', function (req, res) {
res.request(200, users[req.parms.id]);
});
ghosttrain.request('GET', '/users/12345', function (err, res, body) {
console.log(body);
// { name: 'Ozzie Isaacs', skills: ['Planet Riding'] }
console.log(res.statusCode);
// 200
});
API
GhostTrain()
ghosttrain.request(method, path, [options], callback)
Makes a request to the GhostTrain
instance's router. Takes an HTTP method
, path
, optional options
object, and a callback
accepting an err
, res
and body
in its arguments.
Possible options are:
delay
- Number of ms to wait before executing routing (default:1
)body
- Object representing POST body data (default:{}
)headers
- Object of pairings of header values (default:{}
)contentType
- Sets headers forContent-Type
ghosttrain.set(name, value)
Sets a setting value, similar to Express's app.set. The application settings currently supported are:
case sensitive routing
strict routing
json replacer
json spaces
ghosttrain.get(name)
Gets a setting value, similar to Express's app.get.
ghosttrain.enable(name)
Sets a setting value to true
, similar to Express's app.enable
ghosttrain.disable(name)
Sets a setting value to false
, similar to Express's app.disable
ghosttrain.VERB(route, callback)
Creates a route; VERB can be get
, post
, put
, or delete
, similar to Express's app.verb.
Request
The request
object is passed into the route callback as the first argument. Much of the API attempts to mimic Express's request.
req.params
Contains an array of mapped route "parameters", like Express's req.params.
req.body
Is an object containing the parsed request body, like Express's req.body.
Response
res.send([body|status],[body])
Send a response; has the same API as Express's res.send.
res.json([status|body][body])
Send a JSON response; same API as Express's res.json.
res.status(code)
Sets the response status code to code
, similar to Express's res.status.
Browser Support
GhostTrain has been tested on latest versions of Firefox, Chrome, Safari, Opera, and IE8+. For IE8 support, several polyfills and APIs must be implemented; you can use the ./dist/ghosttrain-legacy.js
build which contains all these polyfills, or implement them on your own. The methods needed are:
Array.prototype.indexOf
Array.prototype.map
Array.prototype.forEach
Array.isArray
String.prototype.trim
Object.keys
JSON.parse
JSON.stringify