express-modular-route-builder

0.7.1 • Public • Published

express-modular-route-builder

Modular express server routing using directory structure

Node version contributions welcome

Installation

npm i --save express-modular-route-builder

Usage

Server

const path = require("path");

const express = require("express");
const buildRoutes = require("express-modular-route-builder");

const app = express();
// build routes from "./routes"
const routes = buildRoutes(path.resolve(__dirname, "./routes"));
// map all routes to root
app.use("/", (req, res, next) => routes(req, res, next));

// listen on port 3000
app.listen(3000, () => {
    console.log("Listening on port 3000!");
});

Route

Each route is represented as a JavaScript module(source, .js file). For instance, a directory structure like below would produce the following routes.

./routes
    | - ./test.js
    | - ./[id].js
    | - ./posts
        | - ./[id].js
        | - ./index.js
/test
/:id
/posts/(index)
/posts/:id

Method

Within each route modules, the exported object's properties are mapped to the corresponding method names.

module.exports = {
    get: async (req, res) => {...},
    post: async (req, res) => {...},
    delete: async (req, res) => {...}
}

Routing Rules

  • Files starting with _ are not routed.
    • ex) _database.js will remain unrouted-- It could be imported from other mapped routes.
  • Only files ending with .js are routed.
    • Static file serving is not supported yet. Pull requests are welcome.
  • Static routes(routes without params) have higher priority compared to dynamic routes(routes with params).
  • Files named index will be re-routed to its parent directory

License

MIT. Copyright (C) 2020-present by esinx (Eunsoo Shin).

HitCount

Package Sidebar

Install

npm i express-modular-route-builder

Weekly Downloads

0

Version

0.7.1

License

MIT

Unpacked Size

17.8 kB

Total Files

15

Last publish

Collaborators

  • esinx