jsend

Utilities to assist with sending and handling jsend responses.

jsend

Utilities to assist with sending and handling jsend responses.

npm install -S jsend

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')({ strict:true });
 
// 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'
});

You can forward a jsend response to a node style callback using the forward method.

jsend.forward(json, function(errdata) {
    // err will be set if status was 'error' or 'fail' 
    // data will be set to the "data" property in all cases 
});

The jsend middleware has methods for easily sending "succeess", "fail" and "error" responses:

expressApp.use(jsend.middleware);
 
expressApp.get('/', function(reqres) {
    if(!req.params.someParam)
        return res.jsend.fail({ validation:['someParam is required'] });
 
    loadData(req.params.someParam, function(errdata) {
        if(err) return res.jsend.error(err);
        res.jsend.success(data);
    });
});

Or you can use res.jsend as a callback to respond automatically with a jsend wrapped response:

expressApp.use(jsend.middleware);
 
expressApp.get('/', function(reqres) {
    loadData(req.params.someParam, res.jsend);
});

same as:

expressApp.use(jsend.middleware);
 
expressApp.get('/', function(reqres) {
    loadData(req.params.someParam, function(errdata) {
        res.jsend(err, data);
    });
});
getData(id, function(errdata) {
    res.json(jsend.fromArguments(err, data));
});