2016-10-06 37 views
2

當我在/foo上執行GET請求時,我的請求經過示例A中的第一個中間件功能,但繞過了示例B中的中間件功能?app.use()和app.get()之間的路徑處理方式不同

實施例A

GET「/ foo」的

app.use('/', function(req, res, next) { 
    console.log("req passes through here"); 
    next(); 
} 

app.get('/foo', function(req, res, next) { 
    console.log("then req passes through here"); 
} 

實施例B

GET「/ foo」的

app.get('/', function(req, res, next) { 
    console.log("this part is bypassed..."); 
    next(); 
} 

app.get('/foo', function(req, res, next) { 
    console.log("then req passes through here"); 
} 

app.use()app.get()和使用相同的路徑參數。

那麼在例子B中如何安裝在/上的中間件未被執行?

回答

2

app.use()指示應用程序在所有調用中對所有方法(GET,PUT,POST等)使用指定的路徑。具體地,app.use

將指定的中間件函數或函數裝載到指定的路徑:當請求的路徑的基礎與路徑匹配時,執行中間件函數。

雖然app.get()指示它僅爲該特定路徑使用該特定方法(GET)的路徑。

將HTTP GET請求路由到具有指定回調函數的指定路徑。

相關問題