0
0
NestJSframework~10 mins

Route parameters in NestJS - Step-by-Step Execution

Choose your learning style9 modes available
Concept Flow - Route parameters
Client sends request to URL with parameter
NestJS Router matches route pattern
Extract parameter from URL
Pass parameter to controller method
Controller uses parameter to process request
Send response back to client
This flow shows how NestJS takes a URL with parameters, extracts them, and passes them to the controller method to handle the request.
Execution Sample
NestJS
import { Controller, Get, Param } from '@nestjs/common';

@Controller('users')
export class UsersController {
  @Get(':id')
  getUser(@Param('id') id: string) {
    return `User ID is ${id}`;
  }
}
This code defines a route with a parameter 'id' and returns it in the response.
Execution Table
StepIncoming URLRoute Pattern MatchedExtracted Param 'id'Controller Method CalledResponse
1/users/42/users/:id42getUser('42')User ID is 42
2/users/abc/users/:idabcgetUser('abc')User ID is abc
3/users/No match--404 Not Found
💡 Execution stops when no route pattern matches the incoming URL or after sending the response.
Variable Tracker
VariableStartAfter Step 1After Step 2After Step 3
id-42abc-
Key Moments - 2 Insights
Why does the route '/users/' not match the pattern '/users/:id'?
Because the pattern expects a parameter after '/users/', but the URL ends there, so no 'id' is extracted (see execution_table row 3).
How does NestJS know which part of the URL is the parameter?
NestJS uses the ':id' in the route pattern to extract that part of the URL as the 'id' parameter (see execution_table rows 1 and 2).
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the extracted 'id' when the URL is '/users/42'?
A42
Busers
Cid
DNot extracted
💡 Hint
Check the 'Extracted Param 'id'' column in execution_table row 1.
At which step does the route pattern fail to match the incoming URL?
AStep 1
BStep 2
CStep 3
DNone
💡 Hint
Look at the 'Route Pattern Matched' column in execution_table row 3.
If the URL was '/users/123/profile', would the current route pattern '/users/:id' match?
AYes, 'id' is '123/profile'
BNo, because extra path segments exist
CYes, 'id' is '123'
DNo, because 'profile' is missing
💡 Hint
Route parameters match one segment; extra segments cause no match.
Concept Snapshot
Route parameters in NestJS let you capture parts of the URL.
Use ':paramName' in route paths.
Access with @Param('paramName') in controller methods.
Example: '/users/:id' captures 'id' from URL.
If URL doesn't match pattern, request fails (404).
Useful for dynamic URLs like user profiles.
Full Transcript
In NestJS, route parameters allow the server to capture dynamic parts of the URL. When a client sends a request like '/users/42', NestJS matches this to a route pattern like '/users/:id'. It extracts '42' as the parameter 'id' and passes it to the controller method decorated with @Param('id'). The controller can then use this value to process the request and send a response. If the URL does not match the pattern, such as '/users/' without an id, NestJS returns a 404 error. This mechanism helps build flexible routes that respond to different inputs dynamically.