Express Router Helper
A simple helper to create and structure your express routers.
Setup
npm install express-router-helper
Usage
Before 😖
const Router = ; const router = ; router;router; ;
After 😎
const createRouter HttpMethods = ; prefix: 'cats' routes: method: 'GET' path: '' handler: getAllCats method: HttpMethodsGET // a little helper path: ':id' middleware: middleware1 middleware2 handler: getOneCat ;
- Then use it in like the following:
// somewhere inside your app.js, server.js, index.js or whatever.js 🤣 const app = ; app;
Validation 🆕
Express Router Helper - validation uses Indicative
const createRouter = ; prefix: 'cats' routes: path: '' method: 'GET' validation: body: /** define rules & message */ headers: /** define rules & message */ query: sanitizes: limit: 'to_int' rules: limit: 'required|integer|range:0,50' username: 'required|string|unique_username' messages: 'limit.range': 'The {{field}} must be in range of 0 and 50.' unique_username: 'The username cannot be cathub.' options: abortEarly: false messages: /** define global custom messages */ required: 'Hey kiddo, the {{field}} field is required.' string: 'The {{field}} field must be a string.' extends: /** define global async or custom validations */ name: uniqueUsernamename fn: uniqueUsername handler: getAllCats ; // inside custom-validation-rules.js { return { /** @type */ const fieldValue = ; if !fieldValue return ; // let required rule checks this. if fieldValue !== 'cathub' return ; // let required rule checks this. return ; };}
FAQ
- Sanitization will always run before validation.
- Will validate headers first, then query, and body last.
LICENSE
MIT