-
Add
router.map()
for registering routes and middleware either one at a time or in bulkOne at a time:
let router = createRouter() router.map('/', () => new Response('Home')) router.map('/blog', () => new Response('Blog'))
In bulk:
let routes = createRoutes({ home: '/', blog: '/blog', }) let router = createRouter() router.map(routes, { home() { return new Response('Home') }, blog() { return new Response('Blog') }, })
-
Add
createResource
andcreateResources
functions for creating resource-based route mapsimport { resource, resources, createRoutes } from '@remix-run/fetch-router' let routes = createRoutes({ home: '/', books: resources('books'), // Plural resources profile: resource('profile'), // Singleton resource }) let router = createRouter() // Plural resources router.map(routes.books, { // GET /books index() { return new Response('Books Index') }, // POST /books create() { return new Response('Book Created', { status: 201 }) }, // GET /books/new new() { return new Response('New Book') }, // GET /books/:id show({ params }) { return new Response(`Book ${params.id}`) }, // GET /books/:id/edit edit({ params }) { return new Response(`Edit Book ${params.id}`) }, // PUT /books/:id update({ params }) { return new Response(`Updated Book ${params.id}`) }, // DELETE /books/:id destroy({ params }) { return new Response(`Destroyed Book ${params.id}`) }, }) // Singleton resource router.map(routes.profile, { // GET /profile/:id show({ params }) { return new Response(`Profile ${params.id}`) }, // GET /profile/new new() { return new Response('New Profile') }, // POST /profile create() { return new Response('Profile Created', { status: 201 }) }, // GET /profile/:id/edit edit({ params }) { return new Response(`Edit Profile ${params.id}`) }, // PUT /profile/:id update({ params }) { return new Response(`Updated Profile ${params.id}`) }, // DELETE /profile/:id destroy({ params }) { return new Response(`Destroyed Profile ${params.id}`) }, })