Introducing Socket Firewall: Free, Proactive Protection for Your Software Supply Chain.Learn More
Socket
Book a DemoInstallSign in
Socket

express-routeloader

Package Overview
Dependencies
Maintainers
1
Versions
22
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

express-routeloader

Automatic routeloader for the express web framwork

latest
Source
npmnpm
Version
2.0.0
Version published
Maintainers
1
Created
Source

Express-routeloader

travis NPM version Codeship Status for cullophid/express-routeloader

This is originally a fork of Livedocs-routeloader. Some credit goes to Simon Mcmannus

Basics

Express-routeloader makes it easy to handle endpoints for your REST server. Express-routeloader builds an express router from your ./routes folder.

when given a directory structure like

routes
    - groups.js

where groups is

exports.read = {
    handler : function (req, res) {
        res.send(200);
    }
};
exports.create = {
    handler : function (req, res) {
        res.send(200);
    }
};

Express-routeloader will create a router with the following routes:

POST /groups
GET /groups/:id

You can use multiple routers in the same project which is really useful for maintaining multiple versions of an api.

Routeloader

The routeloader works as a simple router of express:

'use strict';

var express = require('express'),
    app = express(),
router = require('express-routeloader')({/* option */});

app.use(router);

app.listen(3000);

options

rootDir: The directory containing your routes. Defaults to ./routes

logger: Logging function. default : console.log

hideCRUD : Should CRUD endpoints have the extentions be hidden. GET assets/read/:id becomes `GET assets/:id. Defaults to true.

verbMap: Json object mapping filenames to default HTTP verbs. default :

{
    "create": "POST",
    "read": "GET",
    "list" : "GET",
    "search" : "GET",
    "update": "PUT",
    "delete": "DELETE"
}

prefix: prefix for all loaded routes e.g. /api/v1/. this is very useful for maintaining multiple versions of an api.

Routes

routing endpoints are node modules that export a set of objects with a method handler:

'use strict' // Ofc we are running strict!
exports.hello = {
    handler :function (req, res, next) {
        res.send('world');
    }
};

You can overwrite default settings by adding properties to the exported object:

'use strict' // Ofc we are running strict!

exports.hello = {
    url = '/different/route/to/:id',
    method = 'PUT',
    middleware = [func1, func2, func3],
    handler : function (re, res, next) {
        res.send('World');
    }
};

validation

Express-routeloader lets you use json-schema to validate the input to your endpoints. to add validation simply add the schema to the module.

'use strict' // Ofc we are running strict!

exports.hello = {
    url = 'update/:id',
    method : 'POST',
    params =  {
        required : ['id'],
        properties : {
            handler : {
                type : 'integer',
                minimum : 0
            }
        }
    },
    query = {
        properties : {
            someOption : {
                type : 'boolean'
            }
        }
    },
    body = {
        properties : {
            name : {
                type : 'string',
                maxLength : 80
            }
        }
    },
    handler : function (req, res, next) {
        // do an update
        res.send('world');
    }
};

Promises

Express route validator supports promises. If a route handler returns a promise, routeloader with call res.send on promise resolution and next on rejection.

Keywords

express

FAQs

Package last updated on 05 Feb 2015

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