const logger = require('../services/logger');

function errorHandler(err, req, res, next) {
  logger.error('Unhandled error', {
    error: err.message,
    stack: err.stack,
    path: req.path,
    method: req.method,
    ip: req.ip
  });

  if (err.type === 'entity.parse.failed') {
    return res.status(400).json({ error: '无效的JSON格式' });
  }

  // express-validator 验证失败时直接返回400，不会抛到这里
  // 此检查保留作为其他验证库的安全网

  res.status(err.status || 500).json({
    error: process.env.NODE_ENV === 'production' ? '服务器内部错误' : err.message
  });
}

module.exports = errorHandler;
