Bird
Raised Fist0
Expressframework~3 mins

Why res.send for general responses in Express? - Purpose & Use Cases

Choose your learning style10 modes available
The Big Idea

What if you could send any response with just one simple command?

The Scenario

Imagine building a web server that must reply to every user request by writing raw HTTP headers and body manually for each response.

The Problem

Manually crafting HTTP responses is slow, repetitive, and easy to mess up headers or content formatting, leading to broken pages or errors.

The Solution

Using res.send lets you quickly send responses with proper headers and content formatting automatically handled for you.

Before vs After
✗ Before
response.writeHead(200, {'Content-Type': 'text/html'});
response.write('<h1>Hello</h1>');
response.end();
✓ After
res.send('<h1>Hello</h1>');
What It Enables

You can focus on what to send, not how to send it, making server code simpler and less error-prone.

Real Life Example

When a user visits your homepage, res.send quickly delivers the welcome message without you worrying about headers or ending the response.

Key Takeaways

Manually sending HTTP responses is complex and error-prone.

res.send simplifies sending content with correct headers.

This makes server code cleaner and faster to write.

Practice

(1/5)
1. What does res.send() do in an Express app?
easy
A. Logs information to the console
B. Sends a response back to the client and ends the request
C. Reads data from the client request
D. Starts a new server

Solution

  1. Step 1: Understand the purpose of res.send()

    res.send() is used to send a response back to the client in Express.
  2. Step 2: Recognize that it ends the response

    After sending data, res.send() automatically ends the response, so no more data is sent.
  3. Final Answer:

    Sends a response back to the client and ends the request -> Option B
  4. Quick Check:

    res.send() = sends response [OK]
Hint: Remember: res.send sends and finishes response [OK]
Common Mistakes:
  • Thinking res.send starts the server
  • Confusing res.send with reading request data
  • Assuming res.send logs to console
2. Which of the following is the correct syntax to send a plain text response using res.send?
easy
A. res.send('Hello');
B. res.send[Hello];
C. res.send({ message: 'Hello' });
D. res.send = 'Hello';

Solution

  1. Step 1: Identify correct method call syntax

    The correct way to call res.send is as a function with parentheses and the data inside.
  2. Step 2: Check the options for valid syntax

    res.send('Hello'); uses res.send('Hello'); which is correct. res.send({ message: 'Hello' }); sends an object, which is valid but not plain text. Options B and D have invalid syntax.
  3. Final Answer:

    res.send('Hello'); -> Option A
  4. Quick Check:

    Correct function call = res.send('text') [OK]
Hint: Use parentheses and quotes: res.send('text') [OK]
Common Mistakes:
  • Using square brackets instead of parentheses
  • Assigning value instead of calling function
  • Sending object when plain text is needed
3. What will the client receive when this Express route runs?
app.get('/test', (req, res) => {
  res.send({ success: true });
});
medium
A. A plain text: '[object Object]'
B. Nothing, response is empty
C. An error because object can't be sent
D. A JSON string: '{"success":true}'

Solution

  1. Step 1: Understand res.send with an object

    When res.send() receives an object, Express converts it to JSON automatically.
  2. Step 2: Predict the client response

    The client will get a JSON string representing the object: '{"success":true}'.
  3. Final Answer:

    A JSON string: '{"success":true}' -> Option D
  4. Quick Check:

    res.send(object) = JSON string [OK]
Hint: Objects sent with res.send become JSON strings [OK]
Common Mistakes:
  • Expecting plain text '[object Object]'
  • Thinking it causes an error
  • Assuming empty response
4. Identify the error in this Express route:
app.get('/hello', (req, res) => {
  res.send('Hello');
  res.send('Again');
});
medium
A. Calling res.send twice causes an error
B. Missing semicolon after res.send
C. res.send cannot send strings
D. Route path is invalid

Solution

  1. Step 1: Check multiple res.send calls in one route

    Once res.send() is called, the response is finished and cannot be sent again.
  2. Step 2: Understand the error caused

    Calling res.send() a second time causes an error because the response is already closed.
  3. Final Answer:

    Calling res.send twice causes an error -> Option A
  4. Quick Check:

    Only one res.send per response [OK]
Hint: Send response once; multiple res.send calls cause errors [OK]
Common Mistakes:
  • Ignoring that response ends after first send
  • Thinking multiple sends append data
  • Blaming syntax or route path
5. You want to send a JSON response with a status code 201 and a message 'Created' using res.send. Which code correctly does this?
hard
A. res.send({ status: 201, message: 'Created' });
B. res.send(201, { message: 'Created' });
C. res.status(201).send({ message: 'Created' });
D. res.status(201).send('Created');

Solution

  1. Step 1: Set status code before sending response

    Use res.status(201) to set the HTTP status code to 201.
  2. Step 2: Send JSON object with message

    Chain .send({ message: 'Created' }) to send the JSON response.
  3. Final Answer:

    res.status(201).send({ message: 'Created' }); -> Option C
  4. Quick Check:

    Status then send JSON = res.status(201).send({ message: 'Created' }); [OK]
Hint: Chain res.status(code).send(data) to set status and send [OK]
Common Mistakes:
  • Passing status code as first argument to send
  • Sending status inside JSON instead of HTTP status
  • Sending plain text when JSON is needed
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