const config = require('../config/env'); const logger = require('../utils/logger'); const errorHandler = (err, req, res, next) => { let error = { ...err }; error.message = err.message; // Log error logger.error('Fehler:', { message: err.message, stack: err.stack, url: req.originalUrl, method: req.method }); // Mongoose bad ObjectId if (err.name === 'CastError') { const message = 'Ressource nicht gefunden'; error = { message, statusCode: 404 }; } // Mongoose duplicate key if (err.code === 11000) { const message = 'Duplikat gefunden'; error = { message, statusCode: 400 }; } // Mongoose validation error if (err.name === 'ValidationError') { const message = Object.values(err.errors).map(val => val.message).join(', '); error = { message, statusCode: 400 }; } res.status(error.statusCode || 500).json({ success: false, message: error.message || 'Serverfehler', ...(config.nodeEnv === 'development' && { stack: err.stack }) }); }; module.exports = errorHandler;