中间件格式:
//全局
app.use((req,res,next)=>{
next()//放行,执行下边的路径访问
})
//带路径,只过滤这个路径的访问
app.use('/login',(req,res,next)=>{
next()
})
中间件应用:
- 404处理:
app.use((req,res,next)=>{
res.status(404).send('404 not found')
})
- 500处理;
app.use((err,req,res,next)=>{
res.status(500).send(err.message)
})
//触发方法:
1.在上边的路径请求中判断并抛出error:throw new Error('error message')
2。异步处理无法触发要使用next():在异步处理中将err信息放在next()中即可在发生错误时触发500中间件
3.使用trycatch捕获异常
**trycatch可以捕获同步函数错误异步函数错误但是不能捕获其他错误,如promise对象错误,回调函数错误
app.get('/',async(req,res,next)=>{
try{
await user.find({name:'zhangsan'})
} catch(ex){
next(ex)
}
})