🚧 A lightweight routing solution for Node.js. 🚧
npm i dirext-js
Initialize a new instance of dirext.
const Dirext = require('dirext-js');
const app = new Dirext();
Syntax in dirext
is similar to Express.
Any uppercase valid HTTP method:
- GET
- POST
- PUT
- PATCH
- DELETE
- HEAD
- CONNECT
- OPTIONS
- TRACE
Any endpoint. Dirext supports:
- static -
/home
- parameters -
/home/:user
- nested parameters -
/home/:user/posts/:id
- queries -
/home/?user
- wildcards -
/home/*
Initializes a route based on a specific method. Returns itself.
app.set('GET', '/home', middlewareFunction, middlewareFunctionTwo);
app.set('POST', '/home', middlewareFunctionThree, middlewareFunctionFour);
Initializes a route with middleware to execute regardless of the method. If no url is provided, it will be set as global middlware. Returns itself.
app.use('/', middlewareFunction);
app.use(globalMiddlewareFunction);
Utilizes dirext's own set
method to set a method-specific route without passing in method as an argument. Returns itself.
app.get('/home', middlewareFunction);
app.post('/home/:user', userMiddlewareFunction);
app.delete('/home/:user/posts/:id', deletePostMiddleware);
Finds all stored route-specific and global middleware, parameters, and queries, for a route. Returns an object with middleware, params, and queries.
Middleware will be returned in an array in the order it was defined. Queries and Params will be returned in objects with key/value pairs.
app.use(globalMiddleware);
app.use('/home', homeMiddleware);
app.get('/home', getHomeMiddleware);
app.post('/home/:user', postUserMiddleware);
app.delete('/home/?user=user1/posts/:id', deleteMiddleware);
app.find('GET', '/home');
// -> { middleware: [globalMiddleware, homeMiddleware, getHomeMiddleware] }
app.find('POST', '/home/user1');
// -> { middleware: [globalMiddleware, postUserMiddleware], params: { user: user1 } }
app.find('DELETE', '/home/posts/2/?user=user1');
// -> { middleware: [globalMiddleware, deleteMiddleware], params: { id: 2 }, queries: { user: user1 } }