Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

express-inject-middleware

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

express-inject-middleware

Inject stack of middlewares into given routes or middlewares.

  • 0.1.0
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

express-inject-middleware

[![NPM version][npm-image]][npm-url] [![NPM downloads][downloads-image]][downloads-url] [![Build status][travis-image]][travis-url] [![Test coverage][coveralls-image]][coveralls-url]

Inject stack of middlewares into given routes or middlewares.

With this middleware, it can easily define express routes as a group that use one set of middlewares.

Installation

npm install express-inject-middleware --save

Example Usage

Basic example

import express from 'express';
import { injectMiddleware } from 'express-inject-middleware';

const app = express();

const authMiddleware = (req, res, next) => {
  // some auth logic...
};

const fooMiddleware = (req, res, next) => {
  // some foo logic
}

const barMiddleware = (req, res, next) => {
  // some bar logic
}

app.use(injectMiddleware(
  [
    authMiddleware,
    fooMiddleware,
  ],
  [
    // Passing the app.[METHOD] as the parameter.
    app.get('/secrets', (req, res, next) => res.send('secrets'));

    // Mount barMiddleware itself
    app.post('/secrets', barMiddleware, (req, res, next) => res.send('ok'));
  ],
));

Will become...

app.get('/secrets', authMiddleware, fooMiddleware, (req, res, next) => res.send('secrets'));
app.post('/secrets', authMiddleware, fooMiddleware, barMiddleware, (req, res, next) => res.send('secrets'));

Working with express.Router

import express from 'express';
import { injectMiddleware } from 'express-inject-middleware';

const app = express();
const router = express.Router();

const authMiddleware = (req, res, next) => {
  // some auth logic...
};

const fooMiddleware = (req, res, next) => {
  // some foo logic
}

app.use(injectMiddleware(
  [
    authMiddleware,
    fooMiddleware,
  ],
  [
    // Passing the router.[METHOD] as the parameter.
    router.get('/secrets', (req, res, next) => res.send('secrets'));
  ],
));

Will become...

router.get('/secrets', authMiddleware, fooMiddleware, (req, res, next) => res.send('secrets'));

Combine app and router

import express from 'express';
import { injectMiddleware } from 'express-inject-middleware';

const app = express();
const router1 = express.Router();
const router2 = express.Router();

const authMiddleware = (req, res, next) => {
  // some auth logic...
};

router1.get('/foo', (req, res, next) => res.send('foo with secret'));
router2.get('/bar', (req, res, next) => res.send('bar with secret'));

app.use(injectMiddleware(
  [
    authMiddleware,
  ],
  [
    // Passing app.use as the parameter
    app.use('/api', router1);
    app.use('/api', router2);
  ],
));

// Both of the "/api/foo" and "/api/bar" will use the authMiddleware.

License

            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
                    Version 2, December 2004

 Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>

 Everyone is permitted to copy and distribute verbatim or modified
 copies of this license document, and changing it is allowed as long
 as the name is changed.

            DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  0. You just DO WHAT THE FUCK YOU WANT TO.


Keywords

FAQs

Package last updated on 10 Aug 2018

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc