一個簡單的 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 目錄可以分為 public 和 mvc 兩個主要部分,這又受到你想要使用的構建策略的影響。我們使用 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