1.2.0 • Published 1 year ago
als-dynamic-router v1.2.0
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.
Changes in v1.2.0
- als-normalize-urlpath update to new version
- if dirPath not exists, it created
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.