Bird
Raised Fist0
Node.jsframework~10 mins

Error response formatting in Node.js - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to send a JSON error response with status 400.

Node.js
res.status(400).json({ error: [1] });
Drag options to blanks, or click blank then click option'
A"Invalid input"
B400
Ctrue
Dnull
Attempts:
3 left
💡 Hint
Common Mistakes
Using a number instead of a string for the error message.
Sending null or true instead of a descriptive message.
2fill in blank
medium

Complete the code to set the HTTP status to 404 before sending the error JSON.

Node.js
res.[1](404).json({ error: "Not found" });
Drag options to blanks, or click blank then click option'
Asend
Bjson
Cstatus
Dset
Attempts:
3 left
💡 Hint
Common Mistakes
Using send instead of status to set the status code.
Trying to set status with set which is for headers.
3fill in blank
hard

Fix the error in the code to properly send a JSON error response with status 500.

Node.js
res.status(500).[1]({ message: "Server error" });
Drag options to blanks, or click blank then click option'
Asend
Bjson
Cwrite
Dend
Attempts:
3 left
💡 Hint
Common Mistakes
Using send which may not set the content type correctly.
Using write or end which are lower-level methods.
4fill in blank
hard

Fill both blanks to create a middleware that sends a 401 error with a JSON message.

Node.js
app.use((req, res) => { res.[1]([2]).json({ error: "Unauthorized" }); });
Drag options to blanks, or click blank then click option'
Astatus
Bsend
C401
D403
Attempts:
3 left
💡 Hint
Common Mistakes
Using send instead of status to set the status code.
Using 403 instead of 401 for unauthorized errors.
5fill in blank
hard

Fill all three blanks to send a 422 error with a JSON object containing code, message, and details.

Node.js
res.[1]([2]).json({ code: [3], message: "Invalid data", details: "Missing fields" });
Drag options to blanks, or click blank then click option'
Astatus
B422
Dsend
Attempts:
3 left
💡 Hint
Common Mistakes
Using send instead of status.
Using string '422' instead of number 422 for the code property.

Practice

(1/5)
1. What is the main purpose of using res.status() in Node.js error handling?
easy
A. To log errors on the server console
B. To send a success message to the client
C. To restart the server automatically
D. To set the HTTP status code for the response

Solution

  1. Step 1: Understand HTTP status codes

    HTTP status codes tell the client if a request succeeded or failed.
  2. Step 2: Role of res.status()

    This method sets the HTTP status code in the response, indicating success or error.
  3. Final Answer:

    To set the HTTP status code for the response -> Option D
  4. Quick Check:

    res.status() sets HTTP status code [OK]
Hint: Remember: status sets code, not message or logs [OK]
Common Mistakes:
  • Confusing status with sending messages
  • Thinking it logs errors
  • Assuming it restarts the server
2. Which of the following is the correct way to send a JSON error response with status 404 in Express?
easy
A. res.send(404).json({ error: 'Not found' })
B. res.status(404).json({ error: 'Not found' })
C. res.json(404, { error: 'Not found' })
D. res.error(404).send({ error: 'Not found' })

Solution

  1. Step 1: Check Express response methods

    Use res.status(code) to set status, then json() to send JSON.
  2. Step 2: Validate syntax correctness

    Only res.status(404).json({ error: 'Not found' }) is valid syntax.
  3. Final Answer:

    res.status(404).json({ error: 'Not found' }) -> Option B
  4. Quick Check:

    Set status then send JSON [OK]
Hint: Use res.status(code).json(object) for error responses [OK]
Common Mistakes:
  • Calling res.send() before json()
  • Passing status code inside json()
  • Using non-existent res.error() method
3. Given this Express error handler code:
app.use((err, req, res, next) => {
  res.status(500).json({
    message: err.message,
    code: 'SERVER_ERROR'
  });
});

What will the client receive if an error with message 'Database down' occurs?
medium
A. {"message":"Database down","code":"SERVER_ERROR"} with status 500
B. {"error":"Database down"} with status 200
C. Plain text 'Database down' with status 500
D. Empty response with status 500

Solution

  1. Step 1: Analyze the error handler response

    The handler sets status 500 and sends JSON with message and code fields.
  2. Step 2: Match error message and response

    The JSON includes the error message 'Database down' and code 'SERVER_ERROR'.
  3. Final Answer:

    {"message":"Database down","code":"SERVER_ERROR"} with status 500 -> Option A
  4. Quick Check:

    Error message and code sent as JSON with 500 status [OK]
Hint: Error handlers send JSON with message and code [OK]
Common Mistakes:
  • Assuming status 200 by default
  • Expecting plain text instead of JSON
  • Missing error code in response
4. Identify the error in this Express error response code:
app.use((err, req, res) => {
  res.status(400).json({ message: err.message });
});
medium
A. Missing the next parameter in the middleware function
B. Using res.status() instead of res.sendStatus()
C. Not calling res.end() after json()
D. Incorrect status code for errors

Solution

  1. Step 1: Check Express error middleware signature

    Error middleware must have four parameters: err, req, res, next.
  2. Step 2: Identify missing parameter

    The code has only three parameters, missing next, so Express won't recognize it as error handler.
  3. Final Answer:

    Missing the next parameter in the middleware function -> Option A
  4. Quick Check:

    Error middleware needs 4 params: err, req, res, next [OK]
Hint: Error middleware must have 4 parameters [OK]
Common Mistakes:
  • Leaving out next parameter
  • Confusing res.status() with res.sendStatus()
  • Thinking json() needs res.end()
5. You want to send a detailed error response with a custom code and message, but only if the error has a statusCode property. Otherwise, send a 500 status with a generic message. Which code snippet correctly implements this in Express?
hard
A. app.use((err, req, res, next) => { if (err.statusCode) { res.json({ code: err.statusCode, message: err.message }); } else { res.status(500).send('Error'); } });
B. app.use((err, req, res) => { res.status(err.statusCode).json({ message: err.message }); });
C. app.use((err, req, res, next) => { const status = err.statusCode || 500; const message = err.message || 'Internal Server Error'; res.status(status).json({ code: status, message }); });
D. app.use((err, req, res, next) => { res.status(500).json({ code: 'ERROR', message: 'Something went wrong' }); });

Solution

  1. Step 1: Check for error statusCode and message

    Use err.statusCode if present, else default to 500; similarly for message.
  2. Step 2: Send JSON response with status and message

    Set status with res.status(status) and send JSON with code and message fields.
  3. Final Answer:

    app.use((err, req, res, next) => { const status = err.statusCode || 500; const message = err.message || 'Internal Server Error'; res.status(status).json({ code: status, message }); }); -> Option C
  4. Quick Check:

    Use defaults and send JSON with status and message [OK]
Hint: Use || to default status and message in error handler [OK]
Common Mistakes:
  • Missing next parameter in middleware
  • Not defaulting status or message
  • Sending plain text instead of JSON
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