一個簡單的 nodejs 應用程式,帶有 MVC 和 API

  • 第一個主要區別是動態生成的目錄,它們將用於託管和源目錄。
  • 源目錄將具有配置檔案或資料夾,具體取決於你可能具有的配置量。這包括你可以選擇放在 config 目錄中的環境配置和業務邏輯配置。
 |-- Config
        |-- config.json
        |-- appConfig
            |-- pets.config
            |-- payment.config
  • 現在是我們區分伺服器端/後端和前端模組的最重要的目錄。2 目錄伺服器webapp 分別代表後端和前端,我們可以選擇將其放入源目錄即可。 src

    根據個人選擇,你可以使用不同的名稱來獲取伺服器或 webapp,具體取決於你的意義。確保你不想讓它太長或太複雜,因為它在最終的內部專案結構中。

  • 伺服器目錄中你可以擁有控制器,App.js / index.js,它將是你的主要 nodejs 檔案和起點。伺服器目錄。也可以有 dto 目錄,它包含 API 控制器將使用的所有資料傳輸物件。

     |-- server
          |-- dto
              |-- pet.js
              |-- payment.js
          |-- controller
              |-- PetsController.js
              |-- PaymentController.js
          |-- App.js
    
  • webapp 目錄可以分為 publicmvc 兩個主要部分,這又受到你想要使用的構建策略的影響。我們使用 browserfiy 構建 webapp 的 MVC 部分並最小化 mvc 目錄中的內容。

    | - webapp | - public | - mvc

  • 現在,公共目錄可以包含所有靜態資源,影象,css(也可以包含 saas 檔案),最重要的是 HTML 檔案。

|-- public 
    |-- build  // will contianed minified scripts(mvc)
    |-- images
        |-- mouse.jpg
        |-- cat.jpg
    |-- styles
        |-- style.css
    |-- views
        |-- petStore.html
        |-- paymentGateway.html
        |-- header.html
        |-- footer.html
    |-- index.html
  • 所述 MVC 目錄將包含前端邏輯包括模型,該檢視控制器和任何其它 utils 的可能需要作為 UI 的一部分的模組。index.js 或 shell.js 中的任何一個也可以包含在你的目錄中。

     |-- mvc
         |-- controllers
             |-- Dashborad.js
             |-- Help.js
             |-- Login.js
         |-- utils
         |-- index.js
    

所以在最後整個專案結構看起來像 below.And 一個簡單的構建任務一樣一飲而盡 browserify 會再縮小 MVC 指令碼,並在釋出公開目錄。然後我們可以通過 express.use(satic(‘public’)) api 將此公共目錄作為靜態資源提供。

    |-- node_modules
    |-- src
        |-- server
            |-- controller
            |-- App.js   // node app
        |-- webapp
            |-- public
                |-- styles
                |-- images
                |-- index.html
            |-- mvc
                |-- controller
                |-- shell.js  // mvc shell
    |-- config
    |-- Readme.md
    |-- .gitignore
    |-- package.json