express-simplefile-router
Transparent and simple filesystem-based router for Express.
Think how easy it is to create new routes in PHP and how obvious is the list of routes for a typical project? This is what I wanted in Express.
Synopsis
-
npm install express-simplefile-router
-
Create api-handlers/user/hello.get.js
in your project:
module.exports = (req, res) => {
res.send("Hello world");
};
- Mount routes in your
server.js
:
const expressSimpleFileRouter = require('express-simplefile-router');
const app = express();
app.use(
'/api/',
expressSimpleFileRouter({
directory: 'api-handlers'
})
);
const server = app.listen(1111);
- Now you have a
GET
method handler on /api/user/hello/
:
user:~$ curl http://localhost:1111/api/user/hello/
Hello world
Documentation
expressSimpleFileRouter()
Basically expressSimpleFileRouter()
traverses a directory of files and mounts them as routes on an instance of Express.router(). Simple as that.
It accepts two deconstructed arguments:
directory
(required) which directory to travel looking for files ending in .post.js
, .get.js
, .delete.js
, .put.js
or .patch.js
and mounting them as routes;prefix
(default '/'
) string to prepend to all route paths when mounting on Express.router()
;
Route handler files
Every route handler file is a node module. Whatever you module.exports
is supplied as second argument to Express.router()
mount method (.post()
, .get()
, etc). So you can export either a standard handler (req, res) => {...
, or an array of such. See test/one/two.get.js
for the latter example.
Route handler file names are mapped to their route paths. I.e. api/auth/user.post.js
becomes route /api/user/
that handles POST
methods.
Development and maintenance
Tests: npm run test
or mocha test.js
.
Liner: npm run lint
or eslint index.js
.
TODO
Author: Egor Egorov me@egorfine.com.
License: MIT