@luzzif/express-fs v1.0.2
Express FS
Express FS bootstraps your express' app routing based on your source
code location, enforcing a neat project structure and removing the
need for explicit routing definition.
Installing
npm install @luzzif/express-fsor
yarn add @luzzif/express-fsHow to use
The library's basic concept block is the fs-route.
In Express FS a fs-route is a simple Node module which exports a handler and some
middleware functions (those are the same entities that you would normally define in
express in order to specify a route).
An example of an fs-route can be something like this:
// route.js
export const handler = (request, response, next) => next();
export const middleware = (request, response, next) => next();
// Alternatively, multiple middleware functions can be specified
// like this:
// export const middleware = [
// (request, response, next) => next(),
// (request, response, next) => next()
// ];The other aspects of an fs-route aside for the implementation are the path and the
method: those are simply deducted by the location of the fs-route module.
The location should in fact reflect the wanted fs-route's path, while the last part
of the location should indicate the wanted method.
Some examples to clarify the concept (the route is expressed in the format <method>@<path>):
a/route/path/get/index.js=>GET@/a/route/pathfoo/bar/post.js=>POST@/foo/barpatch.js=>PATCH@/
In order to make Express FS register one or more fs-routes, simply pass the app's root
(typically __dirname) and the glob referencing those Node modules containing an fs-route
definition to the fsRouter function, and pass the result to express' use.
Example:
// server.js
const express = require("express");
const { fsRouter } = require("@luzzif/express-fs");
const app = express().use(fsRouter(__dirname, "api/**/index.js"));The snippet above registers all those fs-routes located under the project's root
directory api.
By leveraging this approach, Express FS completely eliminates the need for any routing setup and enforces a clear, straight-forward project structure.
Donations
Please if you like my work consider donating something. Every offer helps me giving out the best software!
- Bitcoin:
3JFXQE6mQibmrxoq3YHKqRUHAvmXxuY8r9 - Ethereum:
0x35E2acD3f46B13151BC941daa44785A38F3BD97A
Thank you all <3