Bird
Raised Fist0
Expressframework~5 mins

res.set for response headers in Express - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does res.set() do in Express?

res.set() sets HTTP response headers before sending the response to the client.

Click to reveal answer
beginner
How do you set multiple headers at once using res.set()?

You pass an object with key-value pairs where keys are header names and values are header values.

res.set({ 'Content-Type': 'application/json', 'Cache-Control': 'no-cache' })
Click to reveal answer
intermediate
Can you overwrite an existing header using res.set()?

Yes, calling res.set() with the same header name will overwrite the previous value.

Click to reveal answer
intermediate
What is the difference between res.set() and res.header() in Express?

They are aliases and behave the same way. Both set response headers.

Click to reveal answer
beginner
Why is setting response headers important in web development?

Headers control how browsers and clients handle the response, like content type, caching, security, and more.

Click to reveal answer
How do you set a single response header using res.set()?
Ares.set('text/html')
Bres.set({'Content-Type'})
Cres.set('Content-Type')
Dres.set('Content-Type', 'text/html')
What happens if you call res.set() twice with the same header name?
AThe header value is overwritten with the last call
BBoth values are sent as a list
CAn error is thrown
DThe first value is kept, the second ignored
Which of these is a valid way to set multiple headers at once?
Ares.set('X-Test', '123', 'X-Flag', 'true')
Bres.set({ 'X-Test': '123', 'X-Flag': 'true' })
Cres.set(['X-Test', '123'], ['X-Flag', 'true'])
Dres.set('X-Test:X-Flag', '123:true')
Is res.header() different from res.set() in Express?
AYes, <code>res.set()</code> only sets cookies
BYes, <code>res.header()</code> only reads headers
CNo, they are aliases and work the same
DYes, <code>res.header()</code> is deprecated
Why might you set the Cache-Control header using res.set()?
ATo control how browsers cache the response
BTo set the page title
CTo change the HTTP method
DTo redirect the user
Explain how to use res.set() to add headers to an Express response. Include examples for single and multiple headers.
Think about how you tell the browser what type of content you are sending or how to cache it.
You got /3 concepts.
    Why is setting response headers important in web applications? Give at least two reasons.
    Consider what happens if the browser does not know what kind of data it received.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does res.set do in an Express response?
      easy
      A. It sets or updates HTTP headers before sending the response.
      B. It sends the response body to the client.
      C. It closes the server connection immediately.
      D. It logs request details to the console.

      Solution

      1. Step 1: Understand the purpose of res.set

        res.set is used to add or modify HTTP headers in the response before sending it.
      2. Step 2: Differentiate from other response methods

        Sending the body is done by res.send, not res.set. Logging or closing connections are unrelated.
      3. Final Answer:

        It sets or updates HTTP headers before sending the response. -> Option A
      4. Quick Check:

        res.set sets headers [OK]
      Hint: Remember: res.set changes headers, not body or connection [OK]
      Common Mistakes:
      • Confusing res.set with res.send
      • Thinking res.set sends the response
      • Assuming res.set closes the connection
      2. Which of the following is the correct syntax to set a single header using res.set?
      easy
      A. res.set('Content-Type', application/json);
      B. res.set('Content-Type', 'application/json');
      C. res.set({Content-Type: 'application/json'});
      D. res.set('Content-Type' => 'application/json');

      Solution

      1. Step 1: Recall correct method signature

        The correct syntax for setting one header is res.set(name, value) where both are strings.
      2. Step 2: Check each option

        res.set('Content-Type', 'application/json'); uses correct syntax with two string arguments. res.set('Content-Type' => 'application/json'); uses invalid arrow syntax. res.set({Content-Type: 'application/json'}); uses invalid object syntax - unquoted key Content-Type (hyphen requires quotes). res.set('Content-Type', application/json); misses quotes around value.
      3. Final Answer:

        res.set('Content-Type', 'application/json'); -> Option B
      4. Quick Check:

        Two string args for single header [OK]
      Hint: Use two strings for single header: name and value [OK]
      Common Mistakes:
      • Using arrow => instead of comma
      • Passing unquoted values
      • Confusing object syntax for single header
      3. What will be the value of the Content-Type header after this code runs?
      res.set({
        'Content-Type': 'text/html',
        'Cache-Control': 'no-cache'
      });
      res.set('Content-Type', 'application/json');
      medium
      A. Undefined (header not set)
      B. 'text/html'
      C. 'no-cache'
      D. 'application/json'

      Solution

      1. Step 1: Understand header setting order

        First, Content-Type is set to 'text/html' via object. Then it is overwritten by res.set('Content-Type', 'application/json').
      2. Step 2: Determine final header value

        The last set value for Content-Type is 'application/json', so that is the final header value.
      3. Final Answer:

        'application/json' -> Option D
      4. Quick Check:

        Last header set wins [OK]
      Hint: Later res.set calls overwrite previous headers [OK]
      Common Mistakes:
      • Assuming first set value stays
      • Confusing other headers with Content-Type
      • Thinking headers merge values
      4. Identify the error in this Express code snippet:
      app.get('/data', (req, res) => {
        res.send('Hello');
        res.set('X-Custom-Header', '123');
      });
      medium
      A. Headers must be set before sending the response body.
      B. res.set cannot set custom headers.
      C. res.send should be called twice to set headers.
      D. No error; code works fine.

      Solution

      1. Step 1: Check order of res.set and res.send

        Headers must be set before calling res.send because sending the body finalizes the response.
      2. Step 2: Identify the mistake

        Here, res.send is called first, then res.set, which is too late to add headers.
      3. Final Answer:

        Headers must be set before sending the response body. -> Option A
      4. Quick Check:

        Set headers before send [OK]
      Hint: Always set headers before sending response body [OK]
      Common Mistakes:
      • Setting headers after res.send
      • Thinking res.set can't set custom headers
      • Calling res.send multiple times
      5. You want to set multiple headers including Content-Type and Cache-Control in one call, but only if a condition is true. Which code correctly uses res.set with condition?
      hard
      A. res.set({'Content-Type': isJson ? 'application/json' : 'text/html'}); res.set('Cache-Control', 'no-store');
      B. res.set('Content-Type', isJson ? 'application/json' : 'text/html', 'Cache-Control', 'no-store');
      C. if (isJson) res.set({'Content-Type': 'application/json', 'Cache-Control': 'no-store'});
      D. res.set('Content-Type', 'application/json' && 'Cache-Control', 'no-store');

      Solution

      1. Step 1: Understand how to set multiple headers conditionally

        Using an object with res.set allows setting many headers at once. Wrapping in an if statement applies condition.
      2. Step 2: Evaluate each option

        if (isJson) res.set({'Content-Type': 'application/json', 'Cache-Control': 'no-store'}); correctly uses an if condition and sets multiple headers in one object. res.set('Content-Type', isJson ? 'application/json' : 'text/html', 'Cache-Control', 'no-store'); has invalid syntax with multiple pairs in one call. res.set({'Content-Type': isJson ? 'application/json' : 'text/html'}); res.set('Cache-Control', 'no-store'); splits headers into two calls but is valid; however, question asks for one call. res.set('Content-Type', 'application/json' && 'Cache-Control', 'no-store'); uses invalid logical operator in arguments.
      3. Final Answer:

        if (isJson) res.set({'Content-Type': 'application/json', 'Cache-Control': 'no-store'}); -> Option C
      4. Quick Check:

        if + res.set(object) for conditional multiple [OK]
      Hint: Use object syntax inside if to set multiple headers [OK]
      Common Mistakes:
      • Passing multiple header pairs as separate arguments
      • Using logical operators inside res.set arguments
      • Setting headers outside condition
      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