express-exitware

1.1.0 • Public • Published

Express Exitware

Allows a standardised exit from controllers so you can standardise behaviour across your application, with access to req, res and next.

Includes by default:

res.ok(someResponse); //For a 200 response with a body
res.ok(someObject, true) //for a 200 JSON response
res.badRequest(responseText); //for a 400 response
res.forbidden(responseText); //for a 403 response
res.notFound(responseText); //for a 404 response
res.serverError(responseText); //for a 500 response

Installation

Install the package via npm:

$ npm install express-exitware

Usage

Declare either basic exitware, or with a path to more exitware:

var exitware = require("express-exitware");
app.use(exitware());
//or
app.use(exitware(__dirname + "/./explicitPathToMyExitwares");

Adding Exitware

Adding exitware is very simple, just create a folder and name your files based on the response you want.

Example:

You want to standardise your response for bad parameters and also log any bad parameters server side for future debugging. You make a folder called responses and inside it you create a file called badParameters.js (or a folder called badParameters containing an index.js).

The file might look like:

module.exports = function(error){
    var log = require("winston"); //Your error logger of choice
    var sentParameters = this.req.params; //Any parameters sent you can get form the req object.
    var sentBody = this.req.body;
    error.sentParameters = sentParameters; //Add the extra information to your error object you're logging
    error.sentBody = sentBody; //As above
    var messageToSend = error.message; //Get the message from the error message you passed in
    log.error(error); //log the error for future debugging
    this.res.status(400).send(messageToSend); //Send the message as a 400 response 
};

You attach exitware to your application as described at the top

var exitware = require("express-exitware");
app.use(exitware(__dirname + "/./explicitPathToMyExitwares");

Then it's bound to res, so from ANY controller when you get a bad parameter or input you can report it to the user and log it with ease:

app.get("/item/:itemName", function(req, res){
    if(!req.params.itemName){
        var myError = new Error("Missing itemName");
        return res.badParameters(myError);
    }
    if(!req.body.hasOwnProperty.somethingRequired){
        var myError = new Error("Missing somethingRequired");
        myError.someMeta = {hah:"meh"};
        return res.badParameters(myError);
    };
    // All OK, do your code below... 
    
});

Further Examples

Check out the examples folder on GitHub

Dependencies (0)

    Dev Dependencies (8)

    Package Sidebar

    Install

    npm i express-exitware

    Weekly Downloads

    6

    Version

    1.1.0

    License

    ISC

    Last publish

    Collaborators

    • drewdotpro