npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

route-er

v1.0.5

Published

A package that enables you to decouple your routes from controllers and organise all routes in a single place.

Downloads

40

Readme

route-er

A package that enables you to decouple your routes from controllers and organise all routes in a single place.

Version 1.0.0

Getting started

The controller (the business logic functions) that you want to attach to a route should be kept in separate files and exported as below.

controller1.js

module.exports = {
    route1:function(req,res){
        res.send('You are in route 1');
    },
    route2:function(req,res){
        res.send('You are in route 2')        
    }
}

Simple Routes

For Simple routes ie. routes that doesnot need any custom middleware functions, You can decalre it in a route.js file in root easily as below.

route.js

var controller1 = require('./controller1.js');
module.exports = {
    'get /route1': controller1.route1,
    'post /route1': controller1.route2,
    }

PS: If you want to rename the file or keep it in another location you can use setRoutePath() and pass the absolute path of you file.

Complex routes

Most of the times you need to work with middlewares and nested routes. But dont worry we got you covered. You can decalre it as.

'get':[
        {
            path:'/route1',
            middleware:[],
            controller: controller1.route1,
            children:[{
                path:'/childRoute',
                controller:controller1.childRoute
            }
            ]
        },
        .
        .
        .
        .
        {
            path:'/route2',
            controller: controller1.route2
        }
    ],
'post':[
        {
            path:'/route2',
            middleware:[],
            controller: controller1.route2
        }
        .
        .
        .
        .
]

you can decalre sub routes with help of children key, it accespts an array of child routes. If you are from angular background you will find it similar to the routing used there.

Initialising the routes

var routeEr = require('route-er')
routeEr.setRoutePath(__dirname + '/route.js'); 
app.use('/',routeEr.init('byMethod'));

byMethod parameter should be passed to init() if you want to use the complex route, If you want to use the simple route just leave it blank.

Methods

setRoutePath(path_of_file)

Accepts the path of file where routes are declared.

Note: Accepts only absolute part, you can use __dirname to get it

init(type)

Accepts 'byMethod' for complex routes. Empty for simple