Utilities to assist with sending and handling jsend responses.
@TODO: document forward
and fromArguments
methods
@TODO: middleware
NOTE: based from Prestaul/jsend but added ability to hide errors (sent to console instead) with code: 4485d9 in json response for tracking. Like..
var jsend = require('jsend')({hideErrors: true});
jsend.build(err, results);
Oh! still needs a little fine tuning so user beware! Also using build() as it's shorter then typing out fromArguments() each time.
By default jsend.isValid
validates that all required properties exist.
var jsend = require('jsend');
// Returns true
jsend.isValid({
status: 'success',
data: { foo:'bar' }
});
// Returns false
jsend.isValid({
status: 'success'
});
// Returns true
jsend.isValid({
status: 'success',
data: { foo:'bar' },
junk: 'is ok'
});
Using the strict
flag causes jsend.isValid
to also validate that extraneous properties do not exist.
var jsend = require('jsend');
// Returns true
jsend.isValid({
status: 'success',
data: { foo:'bar' }
});
// Returns false
jsend.isValid({
status: 'success'
});
// Returns false
jsend.isValid({
status: 'success',
data: { foo:'bar' },
junk: 'is ok'
});
getData(id, function(err, data) {
res.json(jsend.fromArguments(err, data));
});
jsend.forward(json, function(err, data) {
});
expressApp.use(jsend.middleware);
expressApp.get('/', function(req, res) {
loadData(req.params.someParam, function(err, data) {
res.jsend(err, data);
});
});
same as:
expressApp.use(jsend.middleware);
expressApp.get('/', function(req, res) {
loadData(req.params.someParam, res.jsend);
});
same but adds param validation:
expressApp.use(jsend.middleware);
expressApp.get('/', function(req, res) {
if(!req.params.someParam)
return res.fail({ validation:['someParam is required'] });
loadData(req.params.someParam, res.jsend);
});
same:
expressApp.use(jsend.middleware);
expressApp.get('/', function(req, res) {
if(!req.params.someParam)
return res.fail({ validation:['someParam is required'] });
loadData(req.params.someParam, function(err, data) {
if(err) return res.error(err);
res.success(data);
});
});