Overview
The@react-router/express package provides an Express.js request handler for React Router, allowing you to integrate React Router into existing Express applications.
Installation
Basic Setup
Integrate React Router into your Express application:Development Mode
Use Vite’s middleware mode for development with hot module replacement:Custom Load Context
Pass Express request and response objects to your routes:Express Middleware
Use Express middleware before the React Router handler:API Routes
Combine Express API routes with React Router:Error Handling
The request handler automatically passes errors to Express error handlers:Request/Response Utilities
The package exports utilities for converting between Express and Web APIs:createRemixHeaders
Convert Express headers to Web API Headers:createRemixRequest
Convert Express request to Web API Request:sendRemixResponse
Send a Web API Response via Express:Trust Proxy
When deploying behind a proxy (nginx, load balancer, etc.), enable trust proxy:req.hostname, req.protocol, and client IP are correctly detected.
Production Deployment
-
Build your application:
-
Set environment variable:
-
Use a process manager like PM2:
TypeScript Support
Add Express types:Express middleware runs before React Router, allowing you to augment requests with authentication, sessions, and other context.