💫 A file-based routing for Node.js. Works with Bun, pure Node.js, Express.js, and more!
MIT License
A powerful file-based routing for Node.js.
It simplifies the creation and organization of API services. You can effortlessly map your project's file structure to your API endpoints, enabling a clear and maintainable codebase.
Imagine you have a project with the following structure:
api/
├── profile/
│ ├── middlware.ts - middleware for profile
│ └── orders.[post].ts - methods in any filenames
├── catalog/
│ └── [[...tags]].ts - several segments
├── collection/
│ └── [cid]/ - slugs in folders
│ └── products/
│ └── [pid].ts - slugs in files
├── index.ts - root
├── middleware.ts - middleware for all routes
└── _404.ts - not found response
Node File Router will automatically map it to your API endpoints:
/api/profile/orders.[post].ts
/api/catalog/[[...tags]].ts
/api/collection/[cid]/products/[pid].ts
index.ts
Some examples of how your file handlers can be written:
Methods in a file
export default {
get(req, res, routeParams) {},
post(req, res, routeParams) {},
patch(req, res, routeParams) {},
}
Single response function
export default function (req, res, routeParams) {}
Middlewares chain
export default [
useErrorHandler,
useLogger,
useAuthGuard,
];
npm i node-file-router
Visit website to get started and view the full documentation.
Usage:
Methods routing:
Route matching:
Support other protocols and frameworks:
Middlewares:
Visit examples folder to see samples with different module systems, adapters, and use cases.
I usually respond within 24 hours. Fixes typically take 1-3 days. Additionally, I provide time estimations for new features and fixes. Feel free to ask questions, voice ideas, and share your projects on Github Discussion.
To begin development and contribution, read this guide.