Giter VIP home page Giter VIP logo

express-json-transform's Introduction

express-json-transform

Express middleware for intercepting and transforming json responses.

Installation

npm i -S express-json-transform

Usage

A transform is passed an object from the response and it returns a replacement.

Basic usage jsonTransform( transform )

Middleware can be created by passing a transform function. The transform function will be called with a response object prior to json serialization and it must return a replacement object.

var express = require('express'),
	jsonTransform = require('express-json-transform');

// Create a transform to remove sensitive data from responses
var cleanJson = jsonTransform(function(json) {
	delete json.sensitiveInfo;
	return json;
});

var app = express();

// The middleware can be used anywhere express accepts middleware
app.use(cleanJson);

Now when your route handlers call res.json({ ... }) or res.send({ ... }) the objects will be transformed before being sent to the client.

Conditional usage jsonTransform( condition, transform )

Middleware can optionally be created with a function that evaluates whether or not to run the transform. The condition function will be called with a request object and a response object and must return a boolean indicating whether or not the transform should run.

var express = require('express'),
	jsonTransform = require('express-json-transform');

// Create a transform to conditionally remove sensitive data from responses
var cleanJson = jsonTransform(function(req, res) {
    return !!req.params.includeUser;
}, function(json) {
	delete json.sensitiveInfo;
	return json;
});

var app = express();

// The middleware can be used anywhere express accepts middleware
app.use(cleanJson);

Middleware location

Express will let you define middleware in several different places. Each of these uses is valid:

var express = require('express'),
    Router = express.Router;

var transform = require('express-json-transform')(function(json) {
    // modify the response...
    return json;
});

var app = express();
app.use(transform) // application-level middleware
app.get('/path', transform, handler); // middleware for specific route
app.get('/path', [otherMiddleware, transform, handler]) // stacked with other middleware

var router = new Router();
router.use(transform) // router-level middleware
router.get('/path', transform, handler); // middleware for specific route
router.get('/path', [otherMiddleware, transform, handler]) // stacked with other middleware
app.use(router);

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.