Bird
Raised Fist0
NestJSframework~5 mins

Route handlers (GET, POST, PUT, DELETE) in NestJS - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of a GET route handler in NestJS?
A GET route handler is used to retrieve data from the server. It responds to client requests by sending back information without changing any data on the server.
Click to reveal answer
beginner
How do you define a POST route handler in NestJS?
You use the @Post() decorator above a method inside a controller. This method handles requests that send data to the server, usually to create new resources.
Click to reveal answer
intermediate
What is the difference between PUT and POST route handlers?
POST creates new resources, while PUT updates existing resources. PUT is idempotent, meaning calling it multiple times has the same effect as once, unlike POST.
Click to reveal answer
beginner
How do you handle DELETE requests in NestJS?
You use the @Delete() decorator on a controller method. This method deletes a resource on the server when the client sends a DELETE request.
Click to reveal answer
intermediate
Why is it important to use the correct HTTP method in route handlers?
Using the correct HTTP method helps the server and client understand the action being performed, keeps APIs clear, and supports proper caching and security.
Click to reveal answer
Which decorator is used to create a route handler for retrieving data in NestJS?
A@Get()
B@Post()
C@Put()
D@Delete()
What HTTP method should you use to update an existing resource?
AGET
BPOST
CPUT
DDELETE
Which route handler decorator would you use to delete a resource?
A@Get()
B@Post()
C@Put()
D@Delete()
What is the main use of the POST route handler?
ARetrieve data
BCreate new data
CUpdate data
DDelete data
Which HTTP method is idempotent, meaning multiple identical requests have the same effect as one?
APUT
BGET
CPOST
DDELETE
Explain how to create route handlers for GET, POST, PUT, and DELETE requests in NestJS.
Think about the HTTP methods and their purpose in REST APIs.
You got /5 concepts.
    Why is it important to match the HTTP method with the correct route handler in NestJS?
    Consider how HTTP methods describe the action intended.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which decorator is used in NestJS to create a route handler that responds to HTTP GET requests?
      easy
      A. @Get
      B. @Post
      C. @Put
      D. @Delete

      Solution

      1. Step 1: Understand HTTP methods and their decorators

        In NestJS, each HTTP method has a specific decorator: @Get for GET, @Post for POST, @Put for PUT, and @Delete for DELETE.
      2. Step 2: Match the decorator to the GET method

        The decorator @Get is specifically designed to handle HTTP GET requests.
      3. Final Answer:

        @Get -> Option A
      4. Quick Check:

        GET method uses @Get decorator [OK]
      Hint: GET requests use @Get decorator in NestJS [OK]
      Common Mistakes:
      • Confusing @Post or @Put with @Get
      • Using @Delete for GET requests
      • Not using any decorator
      2. Which of the following is the correct syntax to define a POST route handler in a NestJS controller?
      easy
      A. @Post('/create') createItem() {}
      B. Post('/create') createItem() {}
      C. @post('/create') createItem() {}
      D. @Put('/create') createItem() {}

      Solution

      1. Step 1: Check the decorator syntax

        Decorators in NestJS start with '@' and are case-sensitive. The correct decorator for POST is '@Post'.
      2. Step 2: Verify the route path and method name

        The route path '/create' is correctly passed as a string argument, and the method name is valid.
      3. Final Answer:

        @Post('/create') createItem() {} -> Option A
      4. Quick Check:

        Correct decorator syntax uses '@Post' with parentheses [OK]
      Hint: Decorators start with '@' and are case-sensitive [OK]
      Common Mistakes:
      • Missing '@' before decorator
      • Using lowercase '@post' instead of '@Post'
      • Using wrong decorator like '@Put' for POST
      3. Given the following NestJS controller code, what will be the HTTP method and route path to access the handler?
      @Controller('users')
      export class UserController {
        @Put(':id')
        updateUser() {
          return 'User updated';
        }
      }
      medium
      A. GET /users/:id
      B. DELETE /users/:id
      C. PUT /users/:id
      D. POST /users/:id

      Solution

      1. Step 1: Identify the controller base path

        The @Controller('users') decorator sets the base route path to '/users'.
      2. Step 2: Identify the route handler method and path

        The @Put(':id') decorator means this handler responds to HTTP PUT requests at the path '/users/:id', where ':id' is a route parameter.
      3. Final Answer:

        PUT /users/:id -> Option C
      4. Quick Check:

        @Put with ':id' means PUT method at /users/:id [OK]
      Hint: Decorator @Put means HTTP PUT method [OK]
      Common Mistakes:
      • Confusing @Put with @Get or @Post
      • Ignoring the controller base path
      • Misreading ':id' as a literal string
      4. What is wrong with this NestJS route handler code?
      @Controller('items')
      export class ItemController {
        @Delete('/remove')
        removeItem() {
          console.log('Item removed');
        }
      }
      medium
      A. The method name must be 'deleteItem' for @Delete decorator
      B. The decorator @Delete cannot have a path argument
      C. The controller path 'items' is invalid
      D. The method should return a value, not just console.log

      Solution

      1. Step 1: Check the decorator and path usage

        @Delete can have a path argument like '/remove', so this is valid.
      2. Step 2: Check the method implementation

        The method only logs to console but does not return any response. HTTP handlers should return a response to the client.
      3. Final Answer:

        The method should return a value, not just console.log -> Option D
      4. Quick Check:

        Route handlers must return a response [OK]
      Hint: Route handlers must return a response, not just log [OK]
      Common Mistakes:
      • Assuming console.log sends response
      • Thinking decorator cannot have path
      • Believing method name must match decorator
      5. You want to create a NestJS controller with a route handler that updates a product by its ID using HTTP PUT. The handler should accept the ID as a route parameter and the updated data in the request body. Which code snippet correctly implements this?
      hard
      A. @Put updateProduct(@Param('id') id: string, @Body() data: any) { return `Updated product ${id}`; }
      B. @Put(':id') updateProduct(@Param('id') id: string, @Body() data: any) { return `Updated product ${id}`; }
      C. @Put(':id') updateProduct(id: string, data: any) { return `Updated product ${id}`; }
      D. @Post(':id') updateProduct(@Param('id') id: string, @Body() data: any) { return `Updated product ${id}`; }

      Solution

      1. Step 1: Use the correct HTTP method and route parameter

        Updating a resource uses HTTP PUT, so @Put(':id') is correct to capture the ID as a route parameter.
      2. Step 2: Use parameter decorators to access route and body data

        @Param('id') extracts the ID from the route, and @Body() extracts the request body data. Both are required for this handler.
      3. Step 3: Check method signature and return

        The method correctly returns a string confirming the update with the ID.
      4. Final Answer:

        @Put(':id') updateProduct(@Param('id') id: string, @Body() data: any) { return `Updated product ${id}`; } -> Option B
      5. Quick Check:

        Use @Put with ':id' and @Param plus @Body [OK]
      Hint: Use @Put(':id') with @Param and @Body for updates [OK]
      Common Mistakes:
      • Missing route parameter in @Put decorator
      • Not using @Param or @Body decorators
      • Using wrong HTTP method like @Post for update
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard