Intermediate LevelExpress JS
How do you use method-override middleware to support PUT and DELETE requests from standard HTML5 forms?
❓ Interview Prompt: Explain HTML form limitations (GET/POST only), method-override middleware, and rewriting req.method via query or headers.
Standard HTML5 '<form>' elements support ONLY 'GET' and 'POST' methods.
'method-override':
The 'method-override' middleware intercepts incoming requests, checks for a designated override (e.g. query param '?_method=DELETE' or header 'X-HTTP-Method-Override'), and rewrites 'req.method' to 'PUT' or 'DELETE', allowing Express to route to 'app.delete()' handlers!
Code Implementation Example
javascript
import express from 'express';
import methodOverride from 'method-override';
const app = express();
app.use(express.urlencoded({ extended: true }));
// Override HTTP method using _method query parameter
app.use(methodOverride('_method'));
// Form action="/items/42?_method=DELETE" executes this app.delete handler!
app.delete('/items/:id', (req, res) => {
res.json({ deleted: req.params.id });
});💡Rewriting HTML form POST requests to DELETE using method-override.
🎯 Interview Key Takeaway
Use method-override middleware to support PUT and DELETE handlers from standard HTML5 forms.
#method-override#HTML Forms#HTTP Verbs#Intermediate
Back to all Express JS Questions→