持续创作,加速成长!这是我参与「掘金日新计划 · 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
我们进行路由的访问,可以看到页面和控制台的错误信息。
404
访问路由肯定会访问到一个不存在的路由,如果不处理的话,我们的 页面 和 控制台 如下图
那肯定是不行的,我们需要返回一个 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()
}
}
此时我们再访问的时候,就会得到
总结
处理了 api 接口项目中, 错误处理 和 404 的问题,需要注意它们在 app.js 中引入的顺序。