@refkinscallv/express-routing

1.2.1 • Public • Published

📦 @refkinscallv/express-routing

Laravel-style routing system for Express.js in JavaScript. Clean route definitions, middleware support, and controller bindings — just like your favorite PHP framework, but in JS.


🛠 Installation

npm install @refkinscallv/express-routing

🧪 Example Usage

Check out example/index.js for a full working demo of how this works in a real-world Express app.


📚 Features

  • ✅ Simple and clean route declarations (get, post, etc.)
  • ✅ Grouped routes with prefix
  • ✅ Middleware stack: per-route and group-level
  • ✅ Controller-method pair as route handler
  • ✅ Supports HttpContext style handlers: { req, res, next }
  • ✅ Auto-binds controller methods
  • ✅ Fully Express-compatible

✨ Usage

🔹 1. Basic Route

Routes.get('/hello', ({ res }) => {
  res.send('Hello World')
})

🔹 2. With Middleware

const authMiddleware = (req, res, next) => {
  // auth logic
  next()
}

Routes.post('/secure', ({ res }) => res.send('Protected'), [authMiddleware])

🔹 3. Controller Binding

class UserController {
  static index({ res }) {
    res.send('User List')
  }
}

Routes.get('/users', [UserController, 'index'])

⚠️ Class-based handlers will auto-bind to static or instance methods.


🔹 4. Grouped Routes

Routes.group('/admin', () => {
  Routes.get('/dashboard', ({ res }) => res.send('Admin Panel'))
})

With middleware:

Routes.group('/secure', () => {
  Routes.get('/data', ({ res }) => res.send('Secure Data'))
}, [authMiddleware])

🔹 5. Global Middleware Scope

Routes.middleware([authMiddleware], () => {
  Routes.get('/profile', ({ res }) => res.send('My Profile'))
})

🔹 6. Apply to Express

const express = require('express')
const Routes = require('@refkinscallv/express-routing')

const app = express()
const router = express.Router()

// Register your routes
require('./routes')

Routes.apply(router)
app.use(router)

app.listen(3000, () => {
  console.log('Server is running at http://localhost:3000')
})

📖 API Reference

📌 Routes Methods

Method Description
get() Register a GET route
post() Register a POST route
put() Register a PUT route
patch() Register a PATCH route
delete() Register a DELETE route
options() Register an OPTIONS route
head() Register a HEAD route
add() Register multiple methods at once

📌 Static Methods

Method Description
Routes.get() Register a GET route
Routes.post() Register a POST route
Routes.put() Register a PUT route
Routes.delete() Register a DELETE route
Routes.patch() Register a PATCH route
Routes.options() Register an OPTIONS route
Routes.head() Register a HEAD route
Routes.add() Register one or more HTTP methods at once
Routes.group() Group routes under a prefix and share middleware
Routes.middleware() Apply global middleware scope to nested routes
Routes.apply() Apply all defined routes to an Express router

📌 Execution Flow

Middleware execution order:

[ Global Middleware ] → [ Group Middleware ] → [ Route Middleware ]

Handler execution:

  • If function → executed directly
  • If [Controller, 'method'] → auto-instantiated (if needed), method is called

🧠 Tips

  • All route paths are cleaned automatically to avoid double slashes (///)
  • Controller methods are auto-bound (no bind() needed)
  • Handlers support async/Promise usage
  • Middleware order matters, just like native Express

🧪 Run Example

npm run example

Visit: http://localhost:3000


📝 License

MIT License © 2025 Refkinscallv


👋 Stay in Touch

Made with ❤️ by Refkinscallv Follow us for more tools that simplify Node.js development.

Readme

Keywords

Package Sidebar

Install

npm i @refkinscallv/express-routing

Weekly Downloads

3

Version

1.2.1

License

MIT

Unpacked Size

19.1 kB

Total Files

11

Last publish

Collaborators

  • refkinscallv