Express-学习之路 08,api接口 - 错误处理和404

598 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第8天,点击查看活动详情

Express-学习之路 08,api接口 - 错误处理和404

引言

本系列会以我的一个理解,来介绍并开始学习 Express

中间会插入自己所联系到的 乱七八糟 的 知识点

错误处理

之前我们讲过了错误处理,但是封装的不够彻底,我们这里继续封装错误处理。

我们之前创建的 middleware 目录,就是中间件的意思,主要存放中间件。

所以我们将 错误处理的中间件 放置该目录下,即:

- middleware/           中间件
  -- errorMiddle.js

首先不变的是,错误处理中间件,是在 app.js 的最后来处理

const errorMiddle = require('./middleware/errorMiddle')

app.use(errorMiddle())

可以看到传递的是一个函数,因为这样的话,我们方便给里面传递参数。

那么我们的 errorMiddle.js 文件的代码为:

module.exports = () => {
  return (err, req, res, next) => {
    console.log(err)
    res.status(500).json({
      error: err.message
    })
  }
}

这里我们进行测试,在路由文件中写一个 a

image.png

我们进行路由的访问,可以看到页面和控制台的错误信息。

image.png

image.png

404

访问路由肯定会访问到一个不存在的路由,如果不处理的话,我们的 页面 和 控制台 如下图

image.png

image.png

那肯定是不行的,我们需要返回一个 404 状态的中间件。

app.js 中引入,注意顺序

const errorNotExist = require('./middleware/errorNotExist')

/* 路由 */
app.use('/api', router)

/* 404 */
app.use(errorNotExist())

/* 错误处理 */
app.use(errorMiddle())

middleware/errorNotExist.js 文件内容为:

module.exports = () => {
  return (req, res, next) => {
    res.status(404).json({
      error: 'Not Found 404'
    })
    next()
  }
}

此时我们再访问的时候,就会得到

image.png

image.png

总结

处理了 api 接口项目中, 错误处理404 的问题,需要注意它们在 app.js 中引入的顺序。