切换模式
错误中间件
错误中间件在 Express 应用中扮演着关键角色,它负责处理应用中抛出的所有错误。错误中间件是一个具有四个参数的函数:err、req、res、next
定义错误中间件
错误中间件应该放在所有其他中间件和路由之后,确保它能够捕获到所有未处理的错误。
js
// 错误中间件
app.use((err, req, res, next) => {
if (err.status === 404) {
res.status(404).json({
code: 404,
message: err.message || 'Not Found'
});
} else {
res.status(500).json({
code: 500,
message: err.message || 'Internal Server Error'
});
}
});
// 错误中间件
app.use((err, req, res, next) => {
if (err.status === 404) {
res.status(404).json({
code: 404,
message: err.message || 'Not Found'
});
} else {
res.status(500).json({
code: 500,
message: err.message || 'Internal Server Error'
});
}
});
抛出异常
使用 try-catch
js
exports.login = (req, res, next) => {
try {
throw new Error('Invalid username or password');
} catch (error) {
next(error); // 将错误传递给错误处理中间件
}
}
exports.login = (req, res, next) => {
try {
throw new Error('Invalid username or password');
} catch (error) {
next(error); // 将错误传递给错误处理中间件
}
}
直接抛出错误
js
exports.login = (req, res, next) => {
throw new Error('Invalid username or password');
}
exports.login = (req, res, next) => {
throw new Error('Invalid username or password');
}