Visualize all endpoints registered within an express-app and browse all global middlewares applied to those.
This is a Node.js module available through the npm registry.
Before installing, download and install Node.js. Node.js 0.10 or higher is required.
Installation is done using the
npm install
command:
$ npm install express-middleware-visualizer --save-dev
- Displays all endpoints registered with an express-app
- Shows the global middleware stack applied for each endpoint
- Also works for nested routers in Express 4.
Simply require the package passing the global app object to it.
require('express-middleware-visualizer')(app);
You should place this line directly after you have attached all routes to your express app, but before any errorHandlers. See a simplyfied example below:
const express = require('express');
const app = express();
app.get('/, (req, res, next) => {
res.send('Hello Express-middleware-visualizer');
});
if (process.env.NODE_ENV !== 'production') {
require('express-middleware-visualizer')(app);
}
// catch 404s
app.use((req, res, next) => {
next(new Error(`Endpoint ${req.originalUrl} for method ${req.method} is not defined.`));
});
app.use((err, req, res, next) => {
console.error(err);
res.status(err.status || 500).json(err);
});
const server = app.listen(process.env.PORT || 4001, () => {
console.info(`server started, listening on port: ${server.address().port}`);
});
Two new endpoints will then be registered to your app and you can browse your routes at:
<yourHost:yourPort>/expressVisualizer/visualize
To see the json containing all the routes and middleware information, navigate to:
<yourHost:yourPort>/expressVisualizer/fetchData
If you want to use the new ES2015 module loader you have to use the following to lines:
import expressMDWVisualizer from 'express-middleware-visualizer';
expressMDWVisualizer(app);
If you accidentally attach the package also in production it will still only add the new endpoints if NODE_ENV !== production.
Therefore your sensible data will never be leaked in production.