簡體   English   中英

子路由中 express() 和 express.Router() 之間的 NodeJS 差異

[英]NodeJS diffrence between express() and express.Router() in sub routes

我在我的服務器中創建了一個子路由,比如'/users' ,它使用userRoute = express.Router()

但是在mountpath部分的 express 文檔中,它使用另一種方式,例如對子路由使用userRoute = express()並在此處將其稱為子應用程序:

var app = express(); // the main app
var admin = express(); // the sub app
...
app.use('/admin', admin); // mount the sub app

它們的區別和用法是什么?

感謝jfriend00,當我使用app而不是router我可以設置特定的主題引擎或...為我的路線。

您始終需要使用express()來創建頂級服務器應用程序,但要創建包含隔離的路由塊或其他功能的子應用程序,您可以選擇安裝新的express()應用程序或express.Router()路由器。

它們之間的區別在於提供給該塊的特定功能的數量; 路由器更簡單,主要只關注路由,在許多情況下您只想邏輯地組織您的應用程序就足夠了。 如果您查看 Application 和 Router 對象可用的記錄屬性、方法和事件,您會發現 Application 具有 Router 所具有的所有屬性、方法和事件,另外還有一些可以分為四個主要功能區域:

  1. 應用程序設置( get()set()disable()disabled()enable()enabled()
  2. 模板( engine()render()locals
  3. 在父應用程序安裝時收到通知的能力( mount事件)
  4. 訪問它安裝在的路徑( mountpathpath()

因此,如果您不需要使用這些中的任何一個,或者在某些情況下需要但不需要將它們與父應用程序隔離,那么您可以使用路由器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM