#1.入口与目录结构 本文档基于此demo: https://github.com/rxaa/dfv-demo ## 入口文件: ## **http.ts** 本项目基于Express开发,因此http.ts中大部分都是Express的原生用法,在此不多做描述。重点是其中的controller加载部分: ```typescript /** * 加载controllers */ route.load(app, [ { menu: path.join(__dirname, 'controllers', 'web'), onRoute: RouteController.onRoute(void 0, true), }, { menu: path.join(__dirname, 'controllers', 'api'), onRoute: RouteController.onRoute(RouteController.loginCheckApi), }, ]); ``` 通过route中的load函数来进行整个目录的controller加载,以上我们加载了controllers目录下的web以及api这两个目录里的所有文件。至于其它参数的具体作用我们在[第二章控制器](2.controller.md)里在详细介绍。 ## 所有目录简介: ## ---------- ```c │ http.ts //主程序入口,配置并启动http服务 │ del_map.bat //用来清空项目内所有的.js.map文件 │ package.json //node.js配置文件,第三方模块依赖列表 │ pm2.config.js //http主程序的pm2启动配置 │ tsconfig.json //后端Typescript的编译配置文件 │ ├─.idea //WebStorm的配置文件存放目录 │ ├─.vscode //vsCode的配置文件存放目录 │ launch.json //运行配置 │ settings.json //设置 │ tasks.json //编译任务 │ ├─controllers │ │ RouteController.ts //拦截所有controller请求 │ │ │ ├─api //接口controller │ │ │ └─web //页面controller │ ├─front //前端代码目录 │ tsconfig.json //前端Typescript的编译配置文件,该目录下所有文件及其依赖被合并至public/all.js │ ├─lib //其他类库 │ ContextExpress.d.ts //声明dfvContext的额外属性 │ ├─config //所有配置文件目录 │ ajaxApi.ts //自动生成前端接口请求代码模板 │ config.js //配置文件 │ config.production.js //正式环境配置 │ Tasks.ts //定时任务配置 │ └─template //代码模板 │ html.ts //html接口文档自动生成模板 │ mysqlModel.ts //mysql表model代码生成模板 │ ├─models //所有数据模型类的存放目录 │ ├─node_modules //node.js第三方依赖模块目录 │ ├─@types //第三方js模块的.d.ts类型声明目录 │ ├─public //所有前端文件目录 │ ├─css //存放css文件 │ │ │ └─js //存放js文件 │ all.js //front目录里的文件合并结果 │ promise.amd.min.js //用来将加载all.js里的amd模块 │ ├─runtime //存放运行时生成的一些缓存与日志文件 │ ├─test //存放单元测试文件 │ ├─typings //第三方模块 .d.ts 类型声明头文件 │ └─views //存放tsx等视图文件 ``` ## 下一章:[2. 控制器](2.controller.md) ##