2016-04-14 89 views
1

目前我的測試應用程序是這樣配置的。角2和快遞4合併在一個node.js服務器

的WebAPI負責從客戶端應用程序

  • 用MongoDB的
  • 通信回送應答

    1. 接受請求。

    它使用Node.js作爲Web服務器,並將4作爲後端路由框架。

    ClientApp是基於Angular2的前端應用程序,並使用另一個Node.js實例作爲Web服務器而不使用Express 4.它不使用Express,因爲沒有必要。所有客戶端路由都由Angular2完成。

    所以我有兩個「後端」Node.js服務器,一個用於WebAPI,另一個用於ClientApp。

    上述工作正常。我的問題是

    1. 將兩個應用程序(WebAPI和ClientApp)組合在一個Node.js服務器下是否很常見?

    2. 如果是,Express路由URI和Angular2路由器URI會相互混淆嗎?

    3. 如果是有什麼優點和缺點?

    4. 如果是,那麼常見的文件夾結構是什麼樣子?

      凸出根

      |--routes folder (for express) 
          |--views folder (for express, actually there is no view for WebAPI) 
          |--models folder (for WebAPI with mongoose) 
          |--services folder (for WebAPI) 
          |--app folder (for Anglar2 components) 
           |-- views folder (for Angular2 html views) 
          |--node_modules folder (for both) 
          |--index.html (Angular2 start point) 
          |--server.js (Express 4 startup file) 
          |--package.json (for both) 
          |--blabla 
      

    請問上面看可以嗎?

  • 回答

    1

    雖然在項目佈局方面沒有明確的標準,但推薦在express中將前端代碼留在公用文件夾內。 angular的node_modules文件夾也可以留在/ public文件夾中。

    路由可能會有點複雜,您需要將所有Angular特定路由轉發到/ index或任何您的Angular入口點,並讓Angular處理它們。其他路線將照常以快遞方式處理。

    通過這種方式,您可以在沒有任何問題的情況下運行Angular內部的Angular,並且它是佈局和組織項目的更簡潔的方式。

    +0

    這是有道理的。謝謝。 – Shawn