Laravel-style routing for Node.js with support for Express, H3, Fastify, Hono, and Koa, including CommonJS, ESM, and TypeScript support.
npm install clear-router h3
# OR
npm install clear-router expressOR
pnpm add clear-router h3
# OR
pnpm add clear-router expressOR
yarn add clear-router h3
# OR
yarn add clear-router express- Simple and clean route declarations (get, post, put, delete, patch, options, head)
- Grouped routes with prefix
- Method override support via body or header keys (configurable)
- Middleware stack: per-route and group-level
- Controller-method pair as route handler
- Supports HttpContext style handlers: { req, res, next }
- Function handlers always receive context as first argument
- Controller handlers receive hydrated
this.body,this.query,this.params, andthis.clearRequest clearRequestis passed as second handler argument for controller handlers- Route handlers can return response values directly across Express, Fastify, Hono, H3, and Koa
- Laravel-style route parameters like
/books/{book},/books/{book?}, and/books/{book:profile} - Named routes with path generation via
Router.get(...).name(...)andRouter.url(...) - Optional decorated container binding for controller method arguments
- Plugin API for registering container bindings from external packages
- Supports TS 5.2+ standard decorators with explicit
@Bind(...)tokens - Optional
clear-router/decorators/setupentry importsreflect-metadataand enables container binding defaults - Auto-binds controller methods
- Full CommonJS, ESM, and TypeScript support
- Error handling delegated to Express | H3 | Fastify | Hono | Koa
- Route inspection with the
allRoutesmethod - Fully Express-compatible
- Fully H3-compatible
- Fully Fastify-compatible
- Fully Hono-compatible
- Fully Koa-compatible
See the Express JS documentation for details.
See the H3 documentation for details.
See the Fastify documentation for details.
See the Hono documentation for details.
See the Koa documentation for details.
See API.md for complete API documentation.
[ Global Middleware ] → [ Group Middleware ] → [ Route Middleware ]- If function: executed directly
- If [Controller, 'method']: auto-instantiated (if needed), method is called
- First handler arg is always context (
{ req, res, next }for Express, H3 event for H3, Koa context for Koa) - Second handler arg is
clearRequestfor controller handlers - Decorated controller methods can opt into resolved arguments with
@Bind(...)
npm test # Run all tests
npm run test:cjs # Test CommonJS
npm run test:esm # Test ESM
npm run test:ts # Test TypeScriptSee TESTING.md for a detailed testing guide.
npm run example # CommonJS example
npm run example:esm # ESM example
npm run example:ts # TypeScript exampleCheck the example/ directory for full working demos.
See CHANGELOG.md for version history.
- Node.js >= 14.0.0
- Express >= 5.0.0 | H3 >= 2.0.1 | Fastify >= 5.0.0 | Hono >= 4.0.0 | Koa >= 3.0.0
MIT License © 2026 ToneFlix Technologies Limited
3m1n3nce 3m1n3nce@toneflix.net