中間件格式:
//全局
app.use((req,res,next)=>{
next()//放行耸黑,執(zhí)行下邊的路徑訪問
})
//帶路徑,只過濾這個路徑的訪問
app.use('/login',(req,res,next)=>{
next()
})
中間件應(yīng)用:
- 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)
})
//觸發(fā)方法:
1.在上邊的路徑請求中判斷并拋出error:throw new Error('error message')
2茄茁。異步處理無法觸發(fā)要使用next():在異步處理中將err信息放在next()中即可在發(fā)生錯誤時觸發(fā)500中間件
3.使用trycatch捕獲異常
**trycatch可以捕獲同步函數(shù)錯誤異步函數(shù)錯誤但是不能捕獲其他錯誤,如promise對象錯誤甫窟,回調(diào)函數(shù)錯誤
app.get('/',async(req,res,next)=>{
try{
await user.find({name:'zhangsan'})
} catch(ex){
next(ex)
}
})