Bird
Raised Fist0
Node.jsframework~10 mins

Request object properties in Node.js - Step-by-Step Execution

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Concept Flow - Request object properties
Incoming HTTP Request
Node.js Server Receives Request
Request Object Created
Access Properties: method, url, headers, body
Use Properties to Handle Request
When a client sends a request, Node.js creates a request object. We then read its properties like method, url, headers, and body to decide how to respond.
Execution Sample
Node.js
const http = require('http');
const server = http.createServer((req, res) => {
  console.log(req.method);
  console.log(req.url);
  res.end('Done');
});
server.listen(3000);
This code logs the HTTP method and URL of each incoming request.
Execution Table
StepActionreq.methodreq.urlOutput
1Request received: GET /homeGET/homeLogs 'GET' and '/home'
2Request received: POST /submitPOST/submitLogs 'POST' and '/submit'
3Request received: PUT /api/dataPUT/api/dataLogs 'PUT' and '/api/data'
4No more requests--Server keeps running, waiting for requests
💡 Server runs continuously; stops only if manually closed.
Variable Tracker
VariableStartAfter 1After 2After 3
req.methodundefinedGETPOSTPUT
req.urlundefined/home/submit/api/data
Key Moments - 2 Insights
Why does req.method change with each request?
Because each incoming request can use a different HTTP method, as shown in execution_table rows 1-3.
Is req.url always the same?
No, req.url changes depending on the path requested by the client, as seen in execution_table rows 1-3.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is req.method at step 2?
AGET
BPOST
CPUT
DDELETE
💡 Hint
Check the 'req.method' column at step 2 in the execution_table.
At which step does req.url equal '/api/data'?
AStep 3
BStep 2
CStep 1
DNo step
💡 Hint
Look at the 'req.url' column in the execution_table.
If a new request with method 'DELETE' and url '/remove' arrives, what will req.method be after that request?
AGET
BPOST
CDELETE
DPUT
💡 Hint
Refer to variable_tracker showing req.method changes per request.
Concept Snapshot
Request object properties in Node.js:
- req.method: HTTP method (GET, POST, etc.)
- req.url: Requested path
- req.headers: Request headers
- req.body: Data sent by client
Use these to understand and respond to client requests.
Full Transcript
When a client sends an HTTP request to a Node.js server, Node.js creates a request object. This object holds important details about the request. The main properties are req.method, which tells us the HTTP method like GET or POST, and req.url, which shows the path the client wants. By reading these properties, the server can decide how to respond. For example, if req.method is GET and req.url is '/home', the server might send the homepage. These properties change with each new request. The server keeps running, waiting for new requests, updating req.method and req.url each time.

Practice

(1/5)
1. Which property of the Node.js request object contains the HTTP method used by the client, such as GET or POST?
easy
A. req.method
B. req.url
C. req.headers
D. req.body

Solution

  1. Step 1: Understand the request object properties

    The request object has properties like method, url, headers, and body that describe the client's request.
  2. Step 2: Identify the property for HTTP method

    The HTTP method (GET, POST, etc.) is stored in req.method.
  3. Final Answer:

    req.method -> Option A
  4. Quick Check:

    HTTP method = req.method [OK]
Hint: HTTP method is always in req.method [OK]
Common Mistakes:
  • Confusing req.url with HTTP method
  • Using req.body to get method
  • Trying to find method in req.headers
2. Which of the following is the correct way to access the URL path from the request object in Node.js?
easy
A. req.route
B. req.path
C. req.url
D. req.address

Solution

  1. Step 1: Recall the property for URL path

    The request object stores the full URL path in req.url.
  2. Step 2: Verify other options

    req.path is not standard in Node.js core, req.route is used in some frameworks but not for URL path, and req.address is invalid.
  3. Final Answer:

    req.url -> Option C
  4. Quick Check:

    URL path = req.url [OK]
Hint: URL path is stored in req.url [OK]
Common Mistakes:
  • Using req.path which is not standard in Node.js
  • Confusing req.route with URL
  • Trying to access req.address which doesn't exist
3. Consider the following Node.js code snippet:
const http = require('http');
const server = http.createServer((req, res) => {
  res.end(req.headers['content-type']);
});
server.listen(3000);
If a client sends a request with header Content-Type: application/json, what will be the output?
medium
A. application/json
B. content-type
C. undefined
D. Error

Solution

  1. Step 1: Understand how headers are accessed

    Headers in Node.js request object are stored in lowercase keys inside req.headers. So content-type is the correct key.
  2. Step 2: Check the code output

    The code returns req.headers['content-type'], which matches the header sent by the client: application/json.
  3. Final Answer:

    application/json -> Option A
  4. Quick Check:

    Header content-type value = application/json [OK]
Hint: Headers keys are lowercase in req.headers [OK]
Common Mistakes:
  • Using 'Content-Type' instead of 'content-type' key
  • Expecting req.headers to be case-sensitive
  • Assuming undefined if header not found
4. What is wrong with this Node.js code snippet that tries to read JSON data from the request body?
const http = require('http');
const server = http.createServer((req, res) => {
  const data = req.body;
  res.end(data);
});
server.listen(3000);
medium
A. res.end cannot send data
B. req.body is undefined without parsing the data
C. req.body is a function, not a property
D. Missing require for http module

Solution

  1. Step 1: Understand how request body works in Node.js

    In Node.js core, req.body is not automatically populated. You must collect data chunks and parse them manually or use middleware.
  2. Step 2: Identify the error in the code

    The code tries to access req.body directly, which will be undefined, causing the response to send undefined.
  3. Final Answer:

    req.body is undefined without parsing the data -> Option B
  4. Quick Check:

    req.body needs manual parsing [OK]
Hint: req.body is empty unless parsed manually or with middleware [OK]
Common Mistakes:
  • Assuming req.body is auto-filled in Node.js core
  • Trying to send undefined data without error
  • Confusing res.end usage
5. You want to log the client's IP address and the requested URL path in a Node.js HTTP server. Which code snippet correctly accesses these properties from the request object?
hard
A. console.log(req.connection.remoteAddress, req.path);
B. console.log(req.ip, req.path);
C. console.log(req.address, req.route);
D. console.log(req.socket.remoteAddress, req.url);

Solution

  1. Step 1: Identify how to get client IP in Node.js

    The client IP is accessible via req.socket.remoteAddress or req.connection.remoteAddress. The req.socket is the modern standard.
  2. Step 2: Identify how to get URL path

    The URL path is stored in req.url. Other options like req.path or req.route are not standard in Node.js core.
  3. Step 3: Compare options

    console.log(req.socket.remoteAddress, req.url); uses req.socket.remoteAddress and req.url, which is correct and modern.
  4. Final Answer:

    console.log(req.socket.remoteAddress, req.url); -> Option D
  5. Quick Check:

    IP = req.socket.remoteAddress, URL = req.url [OK]
Hint: Use req.socket.remoteAddress and req.url for IP and path [OK]
Common Mistakes:
  • Using req.ip which is Express-specific
  • Using req.path which is not in Node.js core
  • Trying to access req.address or req.route which don't exist