Bird
Raised Fist0
Expressframework~10 mins

res.send for general responses in Express - Step-by-Step Execution

Choose your learning style10 modes available
Concept Flow - res.send for general responses
Client sends HTTP request
↓
Express receives request
↓
Route handler runs
↓
Call res.send(data)
↓
Express sets HTTP response body
↓
Express sends response to client
↓
Client receives response
This flow shows how Express handles a client request and sends a response using res.send.
Execution Sample
Express
app.get('/hello', (req, res) => {
  res.send('Hello, friend!');
});
This code sends a simple text response 'Hello, friend!' when the client visits /hello.
Execution Table
StepActionInput/ValueResult/Output
1Client sends GET request to /helloGET /helloRequest received by Express
2Express matches route /hello/helloRoute handler function called
3res.send called with 'Hello, friend!''Hello, friend!'Response body set to 'Hello, friend!'
4Express sends HTTP responseResponse body: 'Hello, friend!'Client receives response with status 200 and body
5Request handling complete-Connection closed or kept alive
💡 Response sent to client, request cycle ends
Variable Tracker
VariableStartAfter res.send
res._sentfalsetrue
res.bodyundefined'Hello, friend!'
Key Moments - 3 Insights
Why does the client see 'Hello, friend!' after res.send is called?
Because res.send sets the response body and sends it immediately, as shown in execution_table step 3 and 4.
Can res.send send different types of data?
Yes, res.send can send strings, buffers, JSON objects, or arrays. Express converts them properly before sending.
What happens if res.send is called twice?
Only the first call sends the response. Subsequent calls are ignored or cause errors, since res._sent becomes true after the first call.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution table, what is the response body set to at step 3?
Aundefined
B'Goodbye!'
C'Hello, friend!'
Dnull
💡 Hint
Check the 'Input/Value' column at step 3 in the execution_table.
At which step does Express send the response back to the client?
AStep 4
BStep 3
CStep 2
DStep 5
💡 Hint
Look for the step where 'Express sends HTTP response' in the 'Action' column.
If res.send is called twice, what happens according to variable_tracker?
Ares._sent stays false
Bres._sent becomes true after first call and second call is ignored
Cres.body changes to second value
DExpress crashes immediately
💡 Hint
See how res._sent changes from false to true after res.send in variable_tracker.
Concept Snapshot
res.send(data) sends HTTP response body to client.
Accepts strings, buffers, JSON, arrays.
Sends response immediately and ends request.
Only first res.send call works per request.
Used in route handlers to reply to requests.
Full Transcript
When a client sends a request to an Express server, Express finds the matching route handler. Inside the handler, calling res.send with some data sets the HTTP response body and sends it back to the client immediately. The client then receives this response. res.send can send different data types like strings or JSON. Only the first call to res.send sends the response; calling it again does nothing because the response is already sent. This process is shown step-by-step in the execution table and variable tracker.

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