The Principal Dev – Masterclass for Tech Leads

The Principal Dev – Masterclass for Tech Leads28-29 May

Join

Node File Router

product of the week

Codacy Badge ci Status npm downloads 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.

Overview

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:

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,
];

Classes

export default class Resource {
  get(req, res, routeParams) {}
  
  post(req, res, routeParams) {}
  
  patch(req, res, routeParams) {}
}

Documentation

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:

Examples

Visit examples folder to see samples with different module systems, adapters, and use cases.

Support

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.

Developing

To begin development and contribution, read this guide.

Join libs.tech

...and unlock some superpowers

GitHub

We won't share your data with anyone else.