Bird
Raised Fist0
NestJSframework~10 mins

CacheModule setup in NestJS - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to import CacheModule in a NestJS module.

NestJS
import { Module, [1] } from '@nestjs/common';
import { CacheModule } from '@nestjs/cache-manager';

@Module({
  imports: [CacheModule.register()],
})
export class AppModule {}
Drag options to blanks, or click blank then click option'
ACacheModule
BInjectable
CController
DModule
Attempts:
3 left
💡 Hint
Common Mistakes
Importing CacheModule instead of Module
Forgetting to import any decorator
Importing Injectable or Controller by mistake
2fill in blank
medium

Complete the code to register CacheModule with a TTL of 5 seconds.

NestJS
CacheModule.register({ ttl: [1] })
Drag options to blanks, or click blank then click option'
A5
B5000
C60
D0
Attempts:
3 left
💡 Hint
Common Mistakes
Using milliseconds instead of seconds
Setting TTL to 0 which disables caching
Using a very large number unintentionally
3fill in blank
hard

Fix the error in the CacheModule import statement.

NestJS
import { CacheModule } from '[1]';
Drag options to blanks, or click blank then click option'
A@nestjs/common
Bcache-manager
C@nestjs/cache-manager
D@nestjs/cache
Attempts:
3 left
💡 Hint
Common Mistakes
Importing from @nestjs/common
Importing from a non-existent package
Using 'cache-manager' directly
4fill in blank
hard

Fill both blanks to configure CacheModule with a max cache size of 100 and TTL of 10 seconds.

NestJS
CacheModule.register({ ttl: [1], max: [2] })
Drag options to blanks, or click blank then click option'
A10
B100
C5
D50
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up TTL and max values
Using too large or zero values
Omitting one of the options
5fill in blank
hard

Fill all three blanks to import CacheModule, register it with TTL 20, and export it from the module.

NestJS
import { Module, [1] } from '@nestjs/common';
import { CacheModule } from '[2]';

@Module({
  imports: [CacheModule.register({ ttl: [3] })],
  exports: [CacheModule],
})
export class CacheConfigModule {}
Drag options to blanks, or click blank then click option'
AModule
B@nestjs/cache-manager
C20
DInjectable
Attempts:
3 left
💡 Hint
Common Mistakes
Importing wrong decorators
Wrong package for CacheModule
Setting TTL to string instead of number

Practice

(1/5)
1. What is the main purpose of importing CacheModule in a NestJS application?
easy
A. To enable temporary storage of data to speed up responses
B. To connect to a database automatically
C. To handle user authentication
D. To manage application logging

Solution

  1. Step 1: Understand CacheModule's role

    CacheModule is used to store data temporarily to reduce repeated processing.
  2. Step 2: Compare with other options

    It does not handle database, authentication, or logging directly.
  3. Final Answer:

    To enable temporary storage of data to speed up responses -> Option A
  4. Quick Check:

    CacheModule = temporary data storage [OK]
Hint: CacheModule is about caching data, not databases or auth [OK]
Common Mistakes:
  • Confusing CacheModule with database modules
  • Thinking CacheModule manages authentication
  • Assuming CacheModule handles logging
2. Which of the following is the correct way to import and register CacheModule with a TTL of 5 seconds in a NestJS module?
easy
A. CacheModule.register({ ttl: 5 })
B. CacheModule.forRoot({ ttl: 5 })
C. CacheModule.setup({ ttl: 5 })
D. CacheModule.init({ ttl: 5 })

Solution

  1. Step 1: Recall CacheModule registration method

    CacheModule uses the static method register to configure options like ttl.
  2. Step 2: Verify method names

    Methods like forRoot, setup, or init are not used by CacheModule.
  3. Final Answer:

    CacheModule.register({ ttl: 5 }) -> Option A
  4. Quick Check:

    Use register() to configure CacheModule [OK]
Hint: CacheModule uses register(), not forRoot() or init() [OK]
Common Mistakes:
  • Using forRoot() instead of register()
  • Using setup() or init() which do not exist
  • Forgetting to pass options inside register()
3. Given this NestJS module setup:
import { CacheModule, Module } from '@nestjs/common';

@Module({
  imports: [CacheModule.register({ ttl: 10 })],
})
export class AppModule {}
What will be the effect of the ttl: 10 option?
medium
A. Cache entries expire after 10 minutes
B. Cache entries expire after 10 seconds
C. Cache entries never expire
D. Cache entries expire immediately

Solution

  1. Step 1: Understand ttl meaning in CacheModule

    The ttl option sets the time-to-live in seconds for cached data.
  2. Step 2: Interpret ttl: 10

    Since ttl is 10, cached data expires after 10 seconds.
  3. Final Answer:

    Cache entries expire after 10 seconds -> Option B
  4. Quick Check:

    ttl = seconds cache lives [OK]
Hint: ttl value is in seconds, not minutes [OK]
Common Mistakes:
  • Assuming ttl is in minutes
  • Thinking ttl disables expiration
  • Confusing ttl with cache size
4. Identify the error in this CacheModule setup:
import { CacheModule, Module } from '@nestjs/common';

@Module({
  imports: [CacheModule.register({ ttl: '20' })],
})
export class AppModule {}
medium
A. register() method does not accept options
B. CacheModule cannot be imported from '@nestjs/common'
C. ttl should be a number, not a string
D. Module decorator is missing parentheses

Solution

  1. Step 1: Check ttl option type

    ttl expects a number representing seconds, not a string.
  2. Step 2: Verify other parts

    CacheModule import and Module decorator usage are correct; register() accepts options.
  3. Final Answer:

    ttl should be a number, not a string -> Option C
  4. Quick Check:

    ttl must be numeric [OK]
Hint: ttl must be a number, not quoted text [OK]
Common Mistakes:
  • Passing ttl as a string instead of number
  • Thinking register() has no parameters
  • Misusing import paths
5. You want to cache HTTP GET responses in a NestJS controller using CacheModule with a global TTL of 15 seconds. Which setup correctly applies caching to all routes in the module?
hard
A. Import CacheModule with ttl 15 and manually store cache in each method
B. Import CacheModule with ttl 15 and add @Cacheable() decorator on each method
C. Import CacheModule with ttl 15 and add @Cache() decorator on the module
D. Import CacheModule with ttl 15 and add @UseInterceptors(CacheInterceptor) on the controller

Solution

  1. Step 1: Understand CacheModule and CacheInterceptor usage

    CacheModule provides caching, and CacheInterceptor applies caching behavior to routes.
  2. Step 2: Apply CacheInterceptor globally on controller

    Using @UseInterceptors(CacheInterceptor) on the controller enables caching for all its routes.
  3. Step 3: Evaluate other options

    No @Cacheable() or @Cache() decorators exist in NestJS core; manual caching is possible but not automatic.
  4. Final Answer:

    Import CacheModule with ttl 15 and add @UseInterceptors(CacheInterceptor) on the controller -> Option D
  5. Quick Check:

    Use CacheInterceptor with CacheModule for route caching [OK]
Hint: Use CacheInterceptor decorator to enable caching on controllers [OK]
Common Mistakes:
  • Using non-existent decorators like @Cacheable or @Cache
  • Not applying CacheInterceptor to controller or routes
  • Trying manual caching instead of interceptor
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