一个简单的 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