New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

express-router-controller

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

express-router-controller

Controller for express router

latest
Source
npmnpm
Version
1.0.6
Version published
Maintainers
1
Created
Source

Express router controllers

Create routes from clases on es6 or es5. See specific examples for each enviorement (es5, es6-require, es6-import).

Config routing

Create a config file (express-controllers.config.js) on root of your project:

import HomeController from './HomeController';
export default {
  controllers: [
    HomeController
  ],
  defaultHome: 'Home',
  defaultCommonName: 'Controller',
  defaultRoute: 'index'
}

Register controllers to the router:

import express from 'express';
import expressRouterControllers from 'express-router-controller';

const router = express.Router();
expressRouterControllers.register(router);

// tun app
app.use(router);
app.listen(9000);

Creating routes and sub-routes

Create a static controller class to route your project:

route /

import { AbstractController } from 'express-router-controller';

class HomeController extends AbstractController{
  constructor(){
    super([
      'get', 'post' // verbs
    ]);
  }
  index(req, res){
    res.send('Hello world!');
  }
}

Create a dinamic routes mapping to some method, the register do not load this method as static route ;) : /ID2232/foo route

import { AbstractController } from 'express-router-controller';

class HomeController extends AbstractController{
  constructor(){
    super([
      'get', 'post' // verbs
    ]);
    this.dinamic = {
      '/:foo/bar':{
        get: this.index.bind(this);
      }
    }
  }
  index(req, res){
    res.send(`Hello world!, your id: ${req.params.id}`);
  }
}

ES5 support (run in node v0.12.5)

Example:

var util = require('util');
var AbstractController = require('express-controllers').AbstractController;

function ExampleController(){
  AbstractController.call(this, ['get']);
}

util.inherits(ExampleController, AbstractController);

ExampleController.prototype.index = function(req, res){
  res.send('Hello world');
}

module.exports = ExampleController;

Unit testing

For testing, only require and execute a instance of your controller:

With mocha + chai:

const HomeController = require('./HomeController');
const home = new HomeController();
const { expect } = require('chai');

describe('Testing home', () => {
  it('should index response "Hello world!"', () => {
    let value = 'foo';
    const mockRequest = {
      send: () => {
          value = 'bar';
      }
    };
    home.index(mockRequest);
    expect(value).to.be.equals('bar');
  });
});

Keywords

express

FAQs

Package last updated on 13 Nov 2017

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