Hot on the heels of distra, here’s another little something for your toolbox! Watch the intro video, or check out the documentation. Either way, enjoy…
casper is a set of helpers and handlers for building JSONP APIs in Express.
All casper’s methods return a function that can be used in the Express callback chain, or as callbacks for methods that retrieve data, which would typically be a database.
Install
Install casper using npm:
npm install casper
Example usage
The following examples assume that you’ve got the following set up:
Basic handlers
Send an empty object:
Or return some custom data:
Database callbacks
casper.db
casper.db
returns a function to be used as a database callback. It assumes the first argument is an err
and the second is the data
is has to send – an array or an object.
It takes Express’ req
and res
as arguments:
For example:
It can also take a callback which, if present, is called instead of sending data directly back to the client.
With a callback:
If it is passed an error, it will pass that on to the client with a 500 status code. If it recieves no data, or an empty array, it will return the data it recieved with a 404 status.
Checks & filters
Casper also has some useful checks & filters to help you ensure the data you’re recieving is what you’re expecting.
capser.check.body
Check for the presence of data in the body using a key:
For the following, assume the body is
{ testKey: "Hello" }
If the data is missing from the body it sends a 400 error, detailing the missing parameter:
capser.rm.body
Remove a key from the body:
casper.allow.body
Whitelist a key or array of keys allowed on the body.
With an array:
Feedback welcome!
As ever, I hope casper is useful to you! If you’ve got any feedback, bugs or ideas then let me know on Twitter or, even better, on GitHub.