0
0
ExpressDebug / FixBeginner · 4 min read

How to Handle DELETE Request in Express API Correctly

To handle a DELETE request in an Express API, use app.delete(path, handler) where handler processes the request and sends a response. Make sure to access parameters correctly and send a response to avoid hanging requests.
🔍

Why This Happens

Developers often forget to use the app.delete method or do not send a response after handling the delete logic. This causes the client to wait indefinitely or get errors. Also, incorrect route parameters or missing middleware can cause the delete request to fail.

javascript
const express = require('express');
const app = express();

// Incorrect: Using app.get instead of app.delete
app.get('/items/:id', (req, res) => {
  // Pretend to delete item
  console.log('Deleting item', req.params.id);
  // No response sent
  res.status(200).send('Deleted');
});

app.listen(3000);
Output
Client request to DELETE /items/123 hangs or times out because no response is sent.
🔧

The Fix

Use app.delete to handle DELETE requests. Access the item ID from req.params, perform the delete operation, and send a proper response like status 200 or 204 to confirm deletion.

javascript
const express = require('express');
const app = express();

app.delete('/items/:id', (req, res) => {
  const itemId = req.params.id;
  // Here you would delete the item from your database or data store
  console.log('Deleting item', itemId);
  res.status(200).json({ message: `Item ${itemId} deleted successfully` });
});

app.listen(3000, () => console.log('Server running on port 3000'));
Output
{"message":"Item 123 deleted successfully"}
🛡️

Prevention

Always use the correct HTTP method handler like app.delete for DELETE requests. Send a response to avoid hanging requests. Use middleware like express.json() if you expect JSON bodies. Test your API endpoints with tools like Postman or curl to confirm behavior.

Follow RESTful conventions and keep your routes clear and consistent.

⚠️

Related Errors

1. 404 Not Found on DELETE: Happens if route path or method is incorrect. Fix by matching route and method exactly.

2. 500 Internal Server Error: Usually from server code errors during delete operation. Check logs and handle errors gracefully.

3. Hanging Requests: Caused by missing res.send() or res.end(). Always send a response.

Key Takeaways

Use app.delete() to handle DELETE HTTP requests in Express.
Always send a response to the client to avoid hanging requests.
Access route parameters via req.params to identify the resource to delete.
Test your API endpoints with tools like Postman or curl.
Follow RESTful API design principles for clear and consistent routes.