express-print-routes

by analog-nico

Prints the tree of Express routes and middlewares to a file

198 Stars 11 Forks Last release: Not found ISC License 28 Commits 1 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Build Status Coverage Status Dependency Status

Lost Track of All Your Express Routes And Middlewares?!

Are your

app.use(...)
,
app.METHOD(...)
,
app.route(...)
, and
express.Router()
calls spread across your codebase and it’s starting to get difficult to keep track of them all?

express-print-routes
prints the tree of all your Express routes and middlewares to a file.

You get this for example:

router                                                                                                         
 ├── query                            *                                                           
 ├── expressInit                      *                                                           
 ├── logger                           *                                                           
 ├── hpp                              *                                                           
 ├── router                           /^\/api\/?(?=\/|$)/                                         
 │   router                                                                                                    
 │    ├── bound dispatch              /users/:id             GET
 │    │    └── __getUser              /                      GET
 │    │   
 │    └── bound dispatch              /users/:id             POST
 │         ├── __checkAccessRights    /                      POST
 │         └── __updateUser           /                      POST
 │        
 │   
 ├── serveStatic                      *                                                           
 └── __handleError                    *                                                           

Installation

NPM Stats

This is a module for node.js and is installed via npm:

npm install express-print-routes --save-dev

Usage

Call

express-print-routes
after you registered all your routes / middlewares:
var app = express()

// Register all your routes / middlewares

if (process.env.NODE_ENV === 'development') { // Only in dev environment

// Absolute path to output file
var path = require('path')
var filepath = path.join(__dirname, '../docs/routes.generated.txt')

// Invoke express-print-routes
require('express-print-routes')(app, filepath)

}

Consider giving your middlewares names when they appear as

. Often, they are added as anonymous functions like this:
app.use(function (req, res, next) {
    console.log('Hello world!')
    next()
})

Give the middleware a name like this:

app.use(function __helloWorld(req, res, next) { // 

Why printing to a file and not just to the console?

It is good practice to commit the generated file to your version control system. This way you can review all changes like added / renamed / removed routes and added / removed middlewares.

Contributing

To set up your development environment for

express-print-routes
:
  1. Clone this repo to your desktop,
  2. in the shell
    cd
    to the main folder,
  3. hit
    npm install
    ,
  4. hit
    npm install gulp -g
    if you haven't installed gulp globally yet, and
  5. run
    gulp dev
    . (Or run
    node ./node_modules/.bin/gulp dev
    if you don't want to install gulp globally.)

gulp dev
watches all source files and if you save some changes it will lint the code and execute all tests. The test coverage report can be viewed from
./coverage/lcov-report/index.html
.

If you want to debug a test you should use

gulp test-without-coverage
to run all tests without obscuring the code by the test coverage instrumentation.

Change History

  • v1.0.0 (2016-05-01)
    • Initial version

License (ISC)

In case you never heard about the ISC license it is functionally equivalent to the MIT license.

See the LICENSE file for details.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.