A client and server side router designed specifically for Meteor applications.
Iron.Router is a routing package specifically built for Meteor applications that handles both client-side and server-side routing. It allows developers to define URL routes, manage template rendering, and create RESTful endpoints within the Meteor ecosystem. The router integrates seamlessly with Meteor's reactive data system and provides hooks for authentication, data loading, and other middleware-like functionality.
Meteor developers building single-page applications or full-stack web apps who need a robust routing solution that works consistently across client and server environments.
Developers choose Iron.Router because it's purpose-built for Meteor, offering deep integration with the framework's reactive data flow and subscription model. Its unified API for client and server routing simplifies development and provides familiar middleware patterns without requiring external routing libraries.
A client and server side router designed specifically for Meteor.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Seamlessly integrates with Meteor's reactive data system, as evidenced by the `waitOn` and `subscriptions` options for handling data loading and subscription management in routes.
Provides a consistent API for both browser and server routing, enabling RESTful endpoints with `.get()` and `.post()` handlers, as shown in the quick start examples.
Supports `onBeforeAction` and `onRun` hooks for pre-route logic like authentication, with detailed migration examples showing how to adapt hook behavior.
Automatically renders templates based on route names, customizable via `Router.setTemplateNameConverter()`, reducing boilerplate for common use cases.
The router has breaking changes from version 0.9.4, requiring manual updates to hooks and controller methods, as detailed in the migration guide, which can be time-consuming for existing projects.
Exclusively designed for the Meteor framework, making it unsuitable for other environments and creating vendor lock-in that complicates future technology shifts.
Hooks now require explicit `this.next()` calls instead of the previous `pause()` method, adding boilerplate and increasing the risk of errors in authentication and data loading flows.