修改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之旅");});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://blog.csdn.net/weixin_41013537/article/details/132041917