UNPKG

4bnode

Version:

4bnode is a CLI-powered backend development platform with a built-in visual dashboard to generate, manage, and test Node.js/Express APIs faster.

21 lines (19 loc) 893 B
// Central error handling. Register AFTER all routes: // app.use(notFound); // app.use(errorHandler); export function notFound(req, res, next) { res.status(404).json({ message: `Not found - ${req.originalUrl}` }); } export function errorHandler(err, req, res, next) { const status = err.status || err.statusCode || 500; console.error(err); const isProd = process.env.NODE_ENV === 'production'; // In production, only surface messages for client (4xx) errors or errors // explicitly marked safe (err.expose). Never leak raw 5xx internals — a Mongo // E11000 or driver message discloses schema/indexes and enables enumeration. const showMessage = !isProd || err.expose === true || (status >= 400 && status < 500); res.status(status).json({ message: showMessage ? (err.message || 'Server error') : 'Server error', ...(isProd ? {} : { stack: err.stack }), }); }