在Express中,可以通过自定义错误类型来声明正确的Err类型。以下是声明正确的Express Err类型的步骤:
class CustomError extends Error {
constructor(message, statusCode) {
super(message);
this.statusCode = statusCode;
this.name = this.constructor.name;
Error.captureStackTrace(this, this.constructor);
}
}
在上面的例子中,CustomError是一个自定义错误类型,它继承自Error对象,并添加了statusCode属性和name属性。statusCode属性用于表示错误的HTTP状态码,name属性用于表示错误的名称。
app.get('/example', (req, res, next) => {
const error = new CustomError('Custom error message', 500);
next(error);
});
app.use((err, req, res, next) => {
res.status(err.statusCode || 500).json({
error: {
message: err.message
}
});
});
在上面的例子中,当访问/example
路由时,会创建一个CustomError对象,并将其传递给next函数。然后,通过错误处理中间件来捕获并处理该错误。错误处理中间件会将错误的statusCode和message发送给客户端。
请注意,以上推荐的腾讯云产品和链接仅供参考,具体的产品选择应根据实际需求进行评估和决策。
领取专属 10元无门槛券
手把手带您无忧上云