Node 用 request 事件來處理請求響應,事件內使用分支語句處理不一樣路徑的請求,而 Express 封裝了這些操做,使得代碼簡潔優雅編程
但若是請求路徑變多,都寫在 app.js 文件裏的話,就會讓這個入口文件變得臃腫且難維護app
加上 Node 是模塊化編程,因此應該將這些 app.get() 和 app.post() 都抽取出來做爲一個路由模塊 router.js模塊化
方式一,router.js 做爲入口文件,此方式抽離了路由,但入口文件改變了,職能劃分很差函數
方式二,將 router.js 的路由做爲一個函數導出,此方式保證了 app.js 爲入口文件而且抽離出了路由模塊,但這還不是最好的方式post
方式三,Express 提供了一種更好的方式專門來包裝路由spa
這樣,職責劃分清晰了,app.js入門模塊用於啓動服務,作一些服務相關配置,如配置模板引擎、body-parser解析表單post請求體、提供靜態資源服務、監聽端口啓動服務和掛載路由等工做router
router.js 路由模塊只用來處理路由,根據不一樣的請求方法和請求路徑設置具體的請求處理函數blog
模塊職責要單一,一個模塊就作一件事,模塊的劃分是爲了加強項目代碼的可維護性,提高開發效率模板引擎