以上兩者的區別是什麼,何時用哪一個最合適?web
區別看下面的例子:express
app.jsapp
dogs.jspost
在app.js 中調用 express() 時,返回一個app對象。ui
app對象能夠看做建立了一個Express應用程序,app的做用是作一些全局的處理。spa
router是開發人員作業務處理的利器(好比你能夠經過router去use你本身寫的針對某個特定路由的中間件),這樣的好處能夠更細的劃分controller,router就是一個mini的app。router能夠更細的劃分controller。code
「迷你應用程序」背後的想法是,應用程序中的不一樣路線可能變得至關複雜,你能夠從將該邏輯移動到單獨的文件中獲益。router
在上面這個簡單的例子中,/dogs 路由的邏輯已經被移動到本身的文件中,因此它的 GET 和 POST 處理程序不會混亂 app.js。中間件
如今,你能夠獨立地處理對 /dog 的任何請求的邏輯,而不用擔憂它將如何影響貓 /birds。對象
若是你具備與全部三條路由相關的邏輯(Express 中稱爲中間件),則能夠將其放在 app.use(...) 調用上方的 app.js 中。
若是你有邏輯僅與其中一條路線(/dog)相關,那麼你只將它放在該路由的文件中。
至於何時使用,其實上面的例子已經解釋了。
若是代碼很是簡單,徹底能夠 app.get('/',....),若是路由比較複雜,使用 express.Router() 更合適。