Performance: Error-handling middleware signature
This affects server response time and error handling efficiency, impacting how quickly errors are caught and responses are sent.
app.use((err, req, res, next) => {
if (err) {
res.status(500).send('Error');
} else {
next();
}
});app.use((req, res, next) => {
// error handling logic but missing 'err' parameter
if (someError) {
res.status(500).send('Error');
} else {
next();
}
});| Pattern | Middleware Calls | Error Handling Efficiency | Response Delay | Verdict |
|---|---|---|---|---|
| Missing error param middleware | All requests pass through | Low - not triggered automatically | Increased delay due to extra calls | [X] Bad |
| Correct error-handling middleware | Only error requests pass | High - triggered only on errors | Minimal delay, faster error response | [OK] Good |
req, res, next. Error-handling middleware must have four parameters.err as the first parameter, followed by req, res, next.err, req, res, next. This order is required by Express to recognize error middleware.app.use(function(err, req, res, next) {
res.status(500).send('Error: ' + err.message);
});app.use(function(req, res, next, err) {
console.error(err);
res.status(500).send('Server error');
});err, req, res, next. Here, err is last, which is incorrect.err, req, res, next. app.use((err, req, res, next) => { console.log(err); res.status(500).json({error: err.message}); }); matches this.Pass the test and this pattern moves unknown