Bird
Raised Fist0
Expressframework~5 mins

In-memory caching with node-cache in Express - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is in-memory caching in the context of a Node.js server?
In-memory caching stores data temporarily inside the server's memory (RAM) to quickly serve repeated requests without recalculating or fetching from a database.
Click to reveal answer
beginner
What is the main purpose of the node-cache library?
node-cache provides a simple way to store and retrieve data in memory with expiration times, helping improve app speed by avoiding repeated heavy operations.
Click to reveal answer
intermediate
How do you set a value in node-cache with a time-to-live (TTL)?
Use cache.set(key, value, ttlInSeconds). The TTL defines how long the data stays in cache before it expires.
Click to reveal answer
intermediate
What happens when you try to get a key from node-cache that has expired or does not exist?
The get method returns undefined, indicating the data is not available in cache and may need to be fetched or recalculated.
Click to reveal answer
beginner
Why is in-memory caching not suitable for storing very large data or permanent storage?
Because memory is limited and data is lost when the server restarts, in-memory caching is best for small, temporary data to speed up responses.
Click to reveal answer
Which of the following best describes node-cache?
AA library to store data temporarily in server memory with expiration.
BA database for permanent data storage.
CA tool to compress files on the server.
DA frontend UI framework.
How do you retrieve a cached value using node-cache?
Acache.set(key)
Bcache.get(key)
Ccache.delete(key)
Dcache.fetch(key)
What does TTL stand for in caching?
ATime To Live
BTotal Time Limit
CTemporary Transfer Link
DTimed Token Lock
If a cached item expires, what will cache.get(key) return?
Anull
Bempty string
Cfalse
Dundefined
Which scenario is best suited for using node-cache?
ASaving large video files.
BStoring user passwords permanently.
CCaching API responses to reduce database calls.
DHosting a website's static files.
Explain how you would use node-cache to improve performance in an Express app.
Think about saving repeated data to avoid slow operations.
You got /5 concepts.
    What are the limitations of using in-memory caching with node-cache?
    Consider what happens when the server stops or restarts.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using node-cache in an Express app?
      easy
      A. To permanently save data to a database
      B. To temporarily store data in memory for faster access
      C. To handle user authentication securely
      D. To serve static files like images and CSS

      Solution

      1. Step 1: Understand what caching means

        Caching means storing data temporarily to avoid repeated slow operations.
      2. Step 2: Identify node-cache role in Express

        node-cache stores data in memory temporarily to speed up data retrieval.
      3. Final Answer:

        To temporarily store data in memory for faster access -> Option B
      4. Quick Check:

        In-memory caching = temporary fast storage [OK]
      Hint: Cache stores data temporarily to speed up access [OK]
      Common Mistakes:
      • Confusing cache with permanent database storage
      • Thinking node-cache handles authentication
      • Assuming node-cache serves static files
      2. Which of the following is the correct way to create a new cache instance using node-cache?
      easy
      A. const cache = new nodeCache();
      B. const cache = nodeCache.create();
      C. const cache = new NodeCache();
      D. const cache = NodeCache();

      Solution

      1. Step 1: Recall node-cache import and usage

        node-cache is imported as NodeCache and instantiated with new keyword.
      2. Step 2: Check syntax correctness

        Correct syntax is: const cache = new NodeCache();
      3. Final Answer:

        const cache = new NodeCache(); -> Option C
      4. Quick Check:

        Use new NodeCache() to create cache [OK]
      Hint: Use 'new' keyword with NodeCache class [OK]
      Common Mistakes:
      • Calling nodeCache.create() which does not exist
      • Using lowercase 'nodeCache' instead of 'NodeCache'
      • Omitting 'new' keyword when creating instance
      3. Given the code snippet below, what will be the output when accessing /data twice quickly?
      const express = require('express');
      const NodeCache = require('node-cache');
      const app = express();
      const cache = new NodeCache();
      
      app.get('/data', (req, res) => {
        const cached = cache.get('myData');
        if (cached) {
          res.send('From cache: ' + cached);
        } else {
          const freshData = 'Hello World';
          cache.set('myData', freshData, 10);
          res.send('Fresh data: ' + freshData);
        }
      });
      
      app.listen(3000);
      medium
      A. First request: Fresh data: Hello World; Second request: From cache: Hello World
      B. Both requests: Fresh data: Hello World
      C. Both requests: From cache: Hello World
      D. First request: From cache: Hello World; Second request: Fresh data: Hello World

      Solution

      1. Step 1: Analyze cache check on first request

        Cache is empty initially, so first request sets and returns fresh data.
      2. Step 2: Analyze cache check on second request

        Second request finds data in cache and returns cached data.
      3. Final Answer:

        First request: Fresh data: Hello World; Second request: From cache: Hello World -> Option A
      4. Quick Check:

        Cache empty first, then hit cache second [OK]
      Hint: First request sets cache, second reads from cache [OK]
      Common Mistakes:
      • Assuming cache is always empty
      • Thinking cache returns fresh data every time
      • Mixing order of fresh and cached responses
      4. Identify the error in this code snippet using node-cache in Express:
      const NodeCache = require('node-cache');
      const cache = NodeCache();
      
      app.get('/item', (req, res) => {
        const item = cache.get('itemKey');
        if (!item) {
          cache.set('itemKey', 'value');
          res.send('Set new item');
        } else {
          res.send('Cached item: ' + item);
        }
      });
      medium
      A. Cache key 'itemKey' is invalid
      B. Express app is not imported
      C. cache.set requires a callback function
      D. Missing 'new' keyword when creating cache instance

      Solution

      1. Step 1: Check cache instance creation

        node-cache requires 'new NodeCache()' to create an instance.
      2. Step 2: Identify missing 'new' keyword

        Code uses 'NodeCache()' without 'new', causing error.
      3. Final Answer:

        Missing 'new' keyword when creating cache instance -> Option D
      4. Quick Check:

        Always use 'new' with NodeCache [OK]
      Hint: Remember 'new' keyword for NodeCache instance [OK]
      Common Mistakes:
      • Forgetting 'new' keyword
      • Thinking cache.set needs callback
      • Assuming cache keys must be special format
      5. You want to cache user profile data for 5 minutes using node-cache. Which code snippet correctly sets the cache with expiration and retrieves it safely in Express?
      hard
      A. cache.set('user1', profile, 300); const data = cache.get('user1'); if (data) res.send(data); else res.send('No cache');
      B. cache.set('user1', profile); const data = cache.get('user1', 300); if (data) res.send(data); else res.send('No cache');
      C. cache.set('user1', profile, 5); const data = cache.get('user1'); if (data) res.send(data); else res.send('No cache');
      D. cache.set('user1', profile, 300000); const data = cache.get('user1'); if (data) res.send(data); else res.send('No cache');

      Solution

      1. Step 1: Understand TTL unit in node-cache

        TTL (time to live) is in seconds, so 5 minutes = 300 seconds.
      2. Step 2: Check correct usage of set and get

        cache.set(key, value, ttl) sets with expiration; cache.get(key) retrieves value.
      3. Final Answer:

        cache.set('user1', profile, 300); const data = cache.get('user1'); if (data) res.send(data); else res.send('No cache'); -> Option A
      4. Quick Check:

        TTL in seconds, set with 300 for 5 minutes [OK]
      Hint: TTL is seconds; 5 minutes = 300 seconds [OK]
      Common Mistakes:
      • Using TTL in milliseconds instead of seconds
      • Passing TTL to get() method incorrectly
      • Setting TTL too low (5 seconds instead of 300)
      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