web_ppt / backend /src /middleware /errorHandler.js
CatPtain's picture
Upload 10 files
b7560a4 verified
raw
history blame
1 kB
export const errorHandler = (err, req, res, next) => {
console.error('Error:', err);
// JWT错误
if (err.name === 'JsonWebTokenError') {
return res.status(401).json({ error: 'Invalid token' });
}
if (err.name === 'TokenExpiredError') {
return res.status(401).json({ error: 'Token expired' });
}
// GitHub API错误
if (err.response && err.response.status) {
const status = err.response.status;
const message = err.response.data?.message || 'GitHub API error';
if (status === 401) {
return res.status(500).json({ error: 'GitHub authentication failed' });
}
if (status === 404) {
return res.status(404).json({ error: 'Resource not found in GitHub' });
}
return res.status(500).json({ error: `GitHub API error: ${message}` });
}
// 默认错误
res.status(500).json({
error: process.env.NODE_ENV === 'production'
? 'Internal server error'
: err.message
});
};