@routes/index
v1.2.1
Published
๐ An index of routes exposed by Express app
Downloads
2
Maintainers
Readme
@routes/index
๐ An index of routes exposed by Express app
const app = express();
const index = require('@routes/index');
...
const filter = (method, path) => {
if (/patch/i.test(method)) { return false; }
if (path.endsWith('ping')) { return false; }
return true;
};
index(app, filter);
Arguments and options
- First argument is an Expressjs app instance.
- Second, optional, argument is a named options object. All options are optional
| Name | Type | Meaning | - | - | - | filter | {Function} | Filter routes by method or path | should | {Function} | For 'route' method, should it display the 404 list page or simply call next middleware
filter
method accepts two arguments: method (lowercase), and path - respectfully (e.g. :'get', '/users/:user_id'
)
const filter = (method, path) => path.starsWith('/api');
should
method accepts two arguments: request and response - the express middleware arguments
const should = (request, response) => request.path.startsWith('/api');
Usage
Example express app setup
const express = require('express'); const app = express(); app.get('/ping', ...); app.get('/users/:user_id', ...); app.patch('/users/:user_id', ...); app.delete('/users/:user_id', ...); app.get('/users', ...); app.post('/users', ...);
Get an index of all available routes
const index = require('@routes/index');
index(app);
| Example | - |
Get a flat list of routes (no methods) (* de-duped)
const {flat} = index(app);
flat // ['/users', '/users/:user_id']
Show API consumers an index for 404 message
const {route} = index(
app,
// filter paths from the list
{
filter: (method, path) => !['/ping', '*'].includes(path),
should: (request, response) => !request.is('html'),
}
);
app.all('*', route);
| Example | - |
Result
< HTTP/1.1 404 Not Found
< Content-Type: text/plain; charset=utf-8
< Content-Length: 290
< Date: Wed, 17 Apr 2019 21:19:32 GMT
< Connection: keep-alive
<
{ [290 bytes data]
404 error - Could not find route [GET] /missing
Here is a index of available routes:
- [GET] /users
- [POST] /users
- [GET] /users/:user_id
- [PATCH] /users/:user_id
- [DELETE] /users/:user_id