Utility to automatically mount Express routers from a specified routes location.
npm i @numquid/route-mounter// main.(js|ts) or app.(js|ts)
import express from "express";
import { mountRouters } from "route-mounter";
const app = express();
const basePath = "/api";
const myRoutesLocation = path.join(__dirname, "the-folder-that-contain-my-routes")
mountRouters(app, myRoutesLocation, { basePath });
src/routes/
home/
homeRouter.ts
users/
usersRouter.ts
EveryDayIsRouter/
EveryDayIsRouter.ts
demoRoutes/
routes.ts
about-us/
index.ts
GloriousDay/
ThisDayIsGlorious.tsTaking the last route from the above sample; the same would be loaded as:
http://localhost:4000/api/this-day-is-gloriousThe route path that each router is mounted to is automatically derived from its file or folder name.
This helps you keep your routes organized while maintaining a predictable, human-readable structure.
If your router file name is written in PascalCase (e.g. GloriousDay/ThisDayIsGlorious.ts),
it will be converted to a kebab-case route path:
/GloriousDay/ThisDayIsGlorious.ts → /this-day-is-gloriousIf your router file is named index.ts, the parent folder name becomes the route path:
/about-us/index.ts → /about-usIf the router is in a folder but not named index.ts, the folder name becomes the route path (converted to kebab-case):
/demoRoutes/routes.ts → /demo-routesf a router file is located at the root of your routes directory (e.g. home/homeRouter.ts), it will mount to / unless a specific prefix or folder name dictates otherwise:
/home/homeRouter.ts → /- All route paths are normalized to lowercase kebab-case.
- Folder and file names determine the route path hierarchy automatically.
- No manual route prefixing is needed unless you want to override the defaults.