express-simplefile-router

0.0.1 • Public • Published

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

  1. npm install express-simplefile-router

  2. Create api-handlers/user/hello.get.js in your project:

module.exports = (req, res) => {
  res.send("Hello world");
};
  1. 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);
  1. 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

  • Imagine a simple way to handle REST arguments (/user/123)
  • Write jsdoc for index.js
  • Collect developers' feedback
  • Publish JSONHandler and ValidateSchema and add write docs for them all

Footer

Author: Egor Egorov me@egorfine.com.
License: MIT

Package Sidebar

Install

npm i express-simplefile-router

Weekly Downloads

0

Version

0.0.1

License

MIT

Unpacked Size

8.85 kB

Total Files

8

Last publish

Collaborators

  • egorfine