als-dynamic-router

1.0.0 • Public • Published

als-dynamic-router

als-dynamic-router is a Node.js package designed for dynamically creating routes and integrating middleware into your Express applications or similar HTTP servers.

Function routes

The routes function automatically scans a specified directory for route and middleware files, creates routes from them, and adds them to your application.

Parameters

  • dirPath (String): The path to the directory where the route and middleware files are located.
  • urlPath (String): The base URL path for all routes. Defaults to '/'.
  • app (Express Application): The Express application instance to which the routes will be added.

Return Value

The function returns an object with the following properties:

  • readyRoutes (Array): An array of the created routes.
  • errors (Array): An array of errors encountered during the creation of routes.

Usage Example

const express = require('express');
const routes = require('als-dynamic-router');

const app = express();
const dirPath = __dirname + '/routes'; // Path to the directory with route files

// Adding routes to the application
const { readyRoutes, errors } = routes(dirPath, '/', app);

if (errors.length > 0) {
    console.error('The following errors occurred while creating routes:', errors);
}

app.listen(3000, () => {
    console.log('Server is running on port 3000');
});

Dynamic Routes

Files starting with $ are treated as dynamic routes. The $ in the filename will be replaced with : to conform with Express' dynamic route syntax.

Example File Structure for Routes and Middleware

/routes
    /.get.js
    /login.post.js
    /dashboard/$userId.get.js // Dynamic route
    /dashboard/auth.mw.js
    ...

Each route or middleware file should export a corresponding function. Dynamic routes, denoted by $, will be transformed into Express-compatible routes.

Format of Route and Middleware Files

  • Route files should be named in the format [name].[method].js, where [name] is the name of the route, [method] is the HTTP method (get, post, put, delete, etc.). For dynamic routes, use $ in the name to indicate a dynamic segment (e.g., $userId).
  • Middleware files should be named in the format [name].mw.js. If a file name starts with #, it is considered private middleware, which will be applied only to routes in the same directory.
  • General middleware (e.g., auth.mw.js) is applied to all routes at its level and below in the directory structure.
  • Private middleware (e.g., #profile.mw.js) is applied only to routes at the same level in the directory structure.

Package Sidebar

Install

npm i als-dynamic-router

Weekly Downloads

11

Version

1.0.0

License

ISC

Unpacked Size

20.1 kB

Total Files

14

Last publish

Collaborators

  • alexsorkin