0.7.1 • Published 5 years ago
express-modular-route-builder v0.7.1
express-modular-route-builder
Modular express server routing using directory structure
Installation
npm i --save express-modular-route-builderUsage
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/:idMethod
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.jswill remain unrouted-- It could be imported from other mapped routes.
- ex)
- Only files ending with
.jsare 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
indexwill be re-routed to its parent directory
License
MIT. Copyright (C) 2020-present by esinx (Eunsoo Shin).