- 关键步骤
- 创建中间件函数:在Node.js中,中间件是一个函数,它接受
req
(请求对象)、res
(响应对象)和next
(将控制权传递给下一个中间件的函数)作为参数。
- 捕获错误:使用
try...catch
块包裹可能抛出错误的代码。在微服务中,这通常在处理请求的业务逻辑函数调用处。
- 格式化错误:定义一个标准的错误格式,例如包含错误信息、错误代码、堆栈跟踪等。
- 统一输出:将格式化后的错误信息通过
res
对象发送给客户端,同时设置合适的HTTP状态码。
- 核心技术
- Node.js Express框架:如果使用Express构建微服务,它提供了方便的中间件机制。可以使用
app.use
方法注册错误处理中间件。例如:
const express = require('express');
const app = express();
app.use((err, req, res, next) => {
// 格式化错误
const error = {
message: err.message,
code: err.code || 500,
stack: err.stack
};
// 设置HTTP状态码
res.status(error.code);
// 输出错误
res.json(error);
});
- **通用异常处理**:对于未捕获的异常,可以使用`process.on('uncaughtException', (err) => {})`来全局捕获未处理的异常,并进行相应的处理和记录。在微服务环境中,也可以使用类似的机制来确保整个服务在遇到未预料的错误时能够优雅地处理。