修改router/index.js,添加异常处理中间件
**
* 自定义路由异常处理中间件
* 注意两点:
* 第一,方法的参数不能减少
* 第二,方法的必须放在路由最后
*/
router.use((err, req, res, next) => {
console.log(err);
const msg = (err && err.message) || "系统错误";
const statusCode = (err.output && err.output.statusCode) || 500;
const errorMsg =
(err.output && err.output.payload && err.output.payload.error) ||
err.message;
res.status(statusCode).json({
code: CODE_ERROR,
msg,
error: statusCode,
errorMsg,
});
});
完整代码
const express = require("express");
const boom = require("boom");
const { CODE_ERROR } = require("../utils/constant");
// 注册路由
const router = express.Router();
router.get("/", function (req, res) {
res.send("让我们开始express之旅");
});
/**
* 集中处理404请求的中间件
* 注意:该中间件必须放在正常处理流程之后
* 否则,会拦截正常请求
*/
router.use((req, res, next) => {
// console.log(req,res)
next(boom.notFound("接口不存在"));
});
/**
* 自定义路由异常处理中间件
* 注意两点:
* 第一,方法的参数不能减少
* 第二,方法的必须放在路由最后
*/
router.use((err, req, res, next) => {
console.log(err);
const msg = (err && err.message) || "系统错误";
const statusCode = (err.output && err.output.statusCode) || 500;
const errorMsg =
(err.output && err.output.payload && err.output.payload.error) ||
err.message;
res.status(statusCode).json({
code: CODE_ERROR,
msg,
error: statusCode,
errorMsg,
});
});
module.exports = router;
创建 utils/constant:(为了方便后期统一维护,单独拉出来定义)
module.exports = {
CODE_ERROR: -1
}
然后刷新http://localhost:8000/user
这就完成了文章来源地址https://www.toymoban.com/news/detail-622956.html
文章来源:https://www.toymoban.com/news/detail-622956.html
到了这里,关于express学习笔记5 - 自定义路由异常处理中间件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!