因为这个项目是根据bilibili中某个博主打的,在学习时因为视频录制乱的原因,博主编辑的res.cc中间件函数有问题,导致我只要调用res.cc的部分都卡住。
在app.js文件中,挂载全局中间件检测错误时,代码如下:
// 全局注册错误处理函数
app.use((err,req, res, next) => {
// status=0为成功,=1为失败,方便处理失败的情况
res.cc = (err, status = 1) => {
res.send({
status,
//判断这个error是错误对象还是字符串
message: err instanceof Error ? err.message : err,
})
next() // 将控制权传递给下一个中间件
}
})
joi的调用错误,他就一直卡在这里,运行以后程序没有报错,
之后运用postman调用接口就一直在哪里转圈圈,没有检测到服务器,找了一个晚上,终于解决了,所以,在写项目的时候,一定要仔细的理解和检查,出现bug在所难免,但是因为你的失误出现的浪费的时间和精力就很难受。
乍一看,是没有问题,但是就是报错,之后重新写了一个
1.1.解决办法
// 封装res.send函数为cc函数,并设置为全局可用
app.use((req, res, next) => {
// @ts-ignore
res.cc = function (err, status = 1) {
res.send({
status,
msg: err instanceof Error ? err.message : err
})
}
next()
})
就没有问题了。