Spaces:
Running
Running
File size: 1,014 Bytes
6e13570 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | const logger = require("../utils/logger");
// eslint-disable-next-line no-unused-vars
function errorHandler(err, req, res, next) {
let status = err.status || 500;
// Multer surfaces file-size/type problems as plain Errors/MulterErrors
// without a status code — treat those as client errors (400), not
// server failures.
if (err.name === "MulterError" || /Unsupported file type/.test(err.message || "")) {
status = 400;
}
logger.error("Unhandled error", {
message: err.message,
status,
path: req.path,
method: req.method,
// stack only ever goes to server-side logs, never to the client
stack: err.stack,
});
const isProd = process.env.NODE_ENV === "production";
res.status(status).json({
error: status === 500 && isProd ? "Something went wrong. Please try again later." : err.message,
});
}
function notFound(req, res) {
res.status(404).json({ error: "Not found." });
}
module.exports = { errorHandler, notFound };
|