第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

求問node express 捕獲錯(cuò)誤的機(jī)制

求問node express 捕獲錯(cuò)誤的機(jī)制

陪伴而非守候 2019-03-16 19:10:18
在express生成的標(biāo)準(zhǔn)模板中,發(fā)生錯(cuò)誤(404和其他錯(cuò)誤)時(shí),為什么會(huì)執(zhí)行以下代碼?當(dāng)使用try catch時(shí),catch會(huì)觸發(fā)通用的error handler方法?// catch 404 and forward to error handler app.use(function(req, res, next) {     var err = new Error('Not Found');     err.status = 404;    next(err); }); // error handler app.use(function(err, req, res, next) {     // set locals, only providing error in development     res.locals.message = err.message;     res.locals.error = req.app.get('env') === 'development' ? err : {};     // render the error page     res.status(err.status || 500);     res.render('error'); });
查看完整描述

2 回答

?
紅顏莎娜

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超13個(gè)贊

我們來看下文檔:

如果將任何項(xiàng)傳遞到 next() 函數(shù)(除了字符串 'route'),那么 Express 會(huì)將當(dāng)前請(qǐng)求視為處于錯(cuò)誤狀態(tài),并跳過所有剩余的非錯(cuò)誤處理路由和中間件函數(shù)。

因此示例代碼里調(diào)用 next(err) 將使得 Express 調(diào)用錯(cuò)誤處理中間件。至于如何判斷一個(gè)中間件是不是錯(cuò)誤處理中間件?

查看完整回答
反對(duì) 回復(fù) 2019-03-16
?
守著一只汪

TA貢獻(xiàn)1872條經(jīng)驗(yàn) 獲得超4個(gè)贊

Express 會(huì)對(duì)中間件 fn 的參數(shù)個(gè)數(shù)進(jìn)行判斷,如果參數(shù)個(gè)數(shù)不等于 4 則認(rèn)為不是錯(cuò)誤處理中間件,則繼續(xù)調(diào)用next(err),這樣就會(huì)進(jìn)入到下一個(gè)中間件函數(shù),繼續(xù)進(jìn)行參數(shù)個(gè)數(shù)判斷,如此方式一直到某個(gè)中間件函數(shù)的參數(shù)個(gè)數(shù)是 4,就認(rèn)為找到了錯(cuò)誤處理中間件,然后執(zhí)行此中間件函數(shù)。

另外,使用 try catch 會(huì)不會(huì)觸發(fā)錯(cuò)誤處理中間件取決于你是否調(diào)用 next(err)。


查看完整回答
反對(duì) 回復(fù) 2019-03-16
  • 2 回答
  • 0 關(guān)注
  • 952 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)