Express如何处理错误和异常?
时间: 2024-09-15 22:13:25 浏览: 68
在 Express 中,处理错误和异常是很重要的一步,可以帮助你更好地调试和管理应用程序。以下是几种常见的错误处理方式:
1. **全局错误处理器** (`app.use()`): 使用 `app.use(express.errorHandler())` 这样的全局错误处理器可以捕获所有未被捕获的错误,并返回一个标准的错误响应。这通常放在应用程序的最后一部分,以防止覆盖其他更具体的错误处理。
2. **自定义错误处理**:
- **中间件错误处理**:如果需要对特定路由或操作进行错误处理,可以在相应路由上调用 `res.status(statusCode).send(errorMessage)` 来发送自定义错误响应,例如:
```javascript
app.get('/badRoute', (req, res, next) => {
try {
// 执行可能会抛出错误的操作
} catch (error) {
next(new Error('Something went wrong'));
}
});
app.use((err, req, res, next) => {
res.status(500).json({ error: err.message });
});
```
在这个例子中,如果`badRoute`失败,会跳转到全局错误处理器。
3. **Promise 错误处理**:
如果你的代码包含 Promise,可以使用 `.catch()` 或 async/await 结构来捕获错误:
```javascript
async function riskyOperation() {
try {
await someAsyncFunction();
} catch (error) {
console.error('An error occurred:', error);
res.status(500).json({ error: error.message });
}
}
```
阅读全文