Bird
Raised Fist0
Expressframework~5 mins

JSON request and response patterns in Express - Cheat Sheet & Quick Revision

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
Recall & Review
beginner
What is the purpose of using JSON in Express request and response?
JSON is used to send and receive data in a simple, text-based format that both client and server can easily understand and parse.
Click to reveal answer
beginner
How do you parse JSON data sent in a POST request in Express?
Use the built-in middleware express.json() to automatically parse incoming JSON request bodies and make the data available in req.body.
Click to reveal answer
beginner
Which method sends a JSON response in Express?
The res.json() method sends a JSON response. It converts a JavaScript object or array into JSON and sets the Content-Type header to application/json.
Click to reveal answer
intermediate
Why should you set Content-Type to application/json in Express responses?
Setting Content-Type to application/json tells the client that the response body contains JSON data, so the client can parse it correctly.
Click to reveal answer
intermediate
What happens if you forget to use express.json() middleware when sending JSON in a POST request?
Without express.json(), Express won't parse the JSON body, so req.body will be undefined or empty, making it impossible to access the sent data.
Click to reveal answer
Which Express middleware is used to parse JSON request bodies?
Aexpress.json()
Bexpress.urlencoded()
Cexpress.static()
Dexpress.text()
How do you send a JSON response in Express?
Ares.sendJson()
Bres.send()
Cres.sendFile()
Dres.json()
What header does Express set automatically when using res.json()?
AContent-Type: text/plain
BContent-Type: text/html
CContent-Type: application/json
DContent-Type: application/xml
If you forget to use express.json() middleware, what will req.body be for JSON POST requests?
AAn empty object {}
BUndefined or empty
CA string with raw JSON
DAn error is thrown
Which method would you use to parse URL-encoded form data in Express?
Aexpress.urlencoded()
Bexpress.json()
Cexpress.raw()
Dexpress.text()
Explain how to handle JSON data in an Express POST request and send a JSON response.
Think about middleware and response methods for JSON.
You got /4 concepts.
    Describe what happens if you send JSON data to an Express server without using express.json() middleware.
    Focus on request body parsing.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the express.json() middleware do in an Express app?
      easy
      A. It sends JSON responses to the client.
      B. It parses incoming JSON request bodies automatically.
      C. It logs JSON data to the console.
      D. It validates JSON schema in requests.

      Solution

      1. Step 1: Understand middleware purpose

        The express.json() middleware is designed to parse JSON data sent in the request body.
      2. Step 2: Differentiate from response methods

        Sending JSON responses is done by res.json(), not express.json().
      3. Final Answer:

        It parses incoming JSON request bodies automatically. -> Option B
      4. Quick Check:

        express.json() parses JSON requests [OK]
      Hint: express.json() parses JSON request bodies [OK]
      Common Mistakes:
      • Confusing express.json() with res.json()
      • Thinking it sends JSON responses
      • Assuming it validates JSON schema
      2. Which of the following is the correct way to send a JSON response with Express?
      easy
      A. res.sendJson({ message: 'Hello' })
      B. res.send({ json: 'Hello' })
      C. res.json({ message: 'Hello' })
      D. res.jsonify({ message: 'Hello' })

      Solution

      1. Step 1: Identify Express response methods

        Express provides res.json() to send JSON responses with proper headers.
      2. Step 2: Check method names

        Methods like sendJson or jsonify do not exist in Express.
      3. Final Answer:

        res.json({ message: 'Hello' }) -> Option C
      4. Quick Check:

        Use res.json() to send JSON responses [OK]
      Hint: Use res.json() to send JSON responses [OK]
      Common Mistakes:
      • Using non-existent methods like sendJson or jsonify
      • Using res.send() without JSON formatting
      • Confusing method names
      3. Given this Express route, what will be the JSON response when a POST request with body { "name": "Alice" } is sent?
      app.use(express.json());
      app.post('/greet', (req, res) => {
        const user = req.body.name;
        res.json({ greeting: `Hello, ${user}!` });
      });
      medium
      A. Empty response
      B. { "greeting": "Hello, undefined!" }
      C. SyntaxError
      D. { "greeting": "Hello, Alice!" }

      Solution

      1. Step 1: Parse JSON body with express.json()

        The middleware parses the JSON body, so req.body.name is 'Alice'.
      2. Step 2: Construct JSON response

        The response sends { greeting: `Hello, Alice!` } as JSON.
      3. Final Answer:

        { "greeting": "Hello, Alice!" } -> Option D
      4. Quick Check:

        Parsed JSON body used in res.json() response [OK]
      Hint: express.json() parses body; res.json() sends response [OK]
      Common Mistakes:
      • Forgetting to use express.json() middleware
      • Accessing req.body before parsing
      • Expecting undefined instead of 'Alice'
      4. What is wrong with this Express code snippet for handling JSON requests?
      app.post('/data', (req, res) => {
        const data = req.body;
        res.json({ received: data });
      });
      medium
      A. Missing express.json() middleware to parse JSON body.
      B. Using res.json() instead of res.send().
      C. Incorrect route method; should be app.get.
      D. No error; code works fine.

      Solution

      1. Step 1: Check JSON parsing middleware

        The code accesses req.body but does not show express.json() middleware usage.
      2. Step 2: Understand middleware necessity

        Without express.json(), req.body will be undefined for JSON requests.
      3. Final Answer:

        Missing express.json() middleware to parse JSON body. -> Option A
      4. Quick Check:

        express.json() needed to parse JSON requests [OK]
      Hint: Always add express.json() to parse JSON bodies [OK]
      Common Mistakes:
      • Assuming req.body is parsed automatically
      • Confusing res.json() with res.send()
      • Using wrong HTTP method for JSON POST
      5. You want to create an Express route that accepts a JSON array of numbers in the request body and responds with a JSON object containing the sum of those numbers. Which code snippet correctly implements this?
      hard
      A. app.post('/sum', express.json(), (req, res) => { const numbers = req.body; const sum = numbers.reduce((a, b) => a + b, 0); res.json({ sum }); });
      B. app.post('/sum', (req, res) => { const numbers = JSON.parse(req.body); const sum = numbers.reduce((a, b) => a + b, 0); res.json({ sum }); });
      C. app.post('/sum', express.urlencoded(), (req, res) => { const numbers = req.body; const sum = numbers.reduce((a, b) => a + b, 0); res.json({ sum }); });
      D. app.post('/sum', (req, res) => { const numbers = req.body.numbers; const sum = numbers.reduce((a, b) => a + b, 0); res.send({ sum }); });

      Solution

      1. Step 1: Use express.json() middleware to parse JSON array

        app.post('/sum', express.json(), (req, res) => { const numbers = req.body; const sum = numbers.reduce((a, b) => a + b, 0); res.json({ sum }); }); correctly uses express.json() middleware inline to parse the JSON array in the request body.
      2. Step 2: Sum array and send JSON response

        It sums the numbers with reduce and sends the result with res.json(), which sets correct headers.
      3. Step 3: Identify errors in other options

        app.post('/sum', (req, res) => { const numbers = JSON.parse(req.body); const sum = numbers.reduce((a, b) => a + b, 0); res.json({ sum }); }); tries to parse req.body manually, which is already parsed by middleware. app.post('/sum', express.urlencoded(), (req, res) => { const numbers = req.body; const sum = numbers.reduce((a, b) => a + b, 0); res.json({ sum }); }); uses express.urlencoded() which is for form data, not JSON. app.post('/sum', (req, res) => { const numbers = req.body.numbers; const sum = numbers.reduce((a, b) => a + b, 0); res.send({ sum }); }); accesses req.body.numbers but expects array directly in body; also uses res.send() which may not set JSON headers properly.
      4. Final Answer:

        app.post('/sum', express.json(), (req, res) => { const numbers = req.body; const sum = numbers.reduce((a, b) => a + b, 0); res.json({ sum }); }); -> Option A
      5. Quick Check:

        express.json() + res.json() for JSON array sum [OK]
      Hint: Use express.json() middleware and res.json() for JSON data [OK]
      Common Mistakes:
      • Not using express.json() to parse JSON body
      • Using express.urlencoded() for JSON data
      • Manually parsing req.body with JSON.parse
      • Using res.send() instead of res.json() for JSON response