创建第一个应用
技术选型
Midway 有多套技术方案可以选择,我们以部署的方式来做区分:
技术选型 | 描述 |
---|---|
纯 Node.js 项目 | Midway 传统项目,纯 Node.js 研发,以 @midwayjs/koa 为代表的模块,最完整的支持后端项目,采用 依赖注入 + Class 为技术栈。 |
Serverless 项目 | Midway 为 Serverless 场景单独开发的技术栈,以 @midwayjs/faas 为代表的模块,使用轻量的方式接入不同的 Serverless 平台。 |
一体化项目 | Midway 创新技术方案,采用前后端一体化开发方式,节省前后端联调时间,以 @midwayjs/hooks 为代表的模块,使用 函数式 为主要编码范式。 |
提示
本章节及后续的文档将以 纯 Node.js 项目 作为基础示例,如需使用 Serverless 项目,请跳转到 Serverless,如需了解一体化项目,请访问 一体化 。
快速初始化
使用 npm init midway
查看完整的脚手架列表,选中某个项目 后,Midway 会自动创建示例目录,代码,以及安装依赖。
$ npm init midway@latest -y
针对 v3 项目,请选择 koa-v3
,注意 Node.js 环境要求。
示例将创建一个类似下面的目录结构,其中最精简的 Midway 项目示例如下。
➜ my_midway_app tree
.
├── src ## midway 项目源码
│ └── controller ## Web Controller 目录
│ └── home.controller.ts
├── test
├── package.json
└── tsconfig.json
整个项目包括了一些最基本的文件和目录。
src
整个 Midway 项目的源码目录,你之后所有的开发源码都将存放于此test
项目的测试目录,之后所有的代码测试文件都在这里package.json
Node.js 项目基础的包管理配置文件tsconfig.json
TypeScript 编译配置文件
除了整个目录,我们还有一些其他的目录,比如 controller
目录。
开发习惯
Midway 对目录没有特别的限制,但是我们会遵守一些简单的开发习惯,将一部分常用的文件进行归类,放到一些默认的文件夹中。
以下 ts 源码文件夹均在 src
目录下。
常用的有:
controller
Web Controller 目录middleware
中间件目录filter
过滤器目录aspect
拦截器service
服务逻辑目录entity
或model
数据库实体目录config
业务的配置目录util
工具类存放的目录decorator
自定义装饰器目录interface.ts
业务的 ts 定义文件
随着不同场景的出现,目录的习惯也会不断的增加,具体的目录内容会体现在不同的组件功能中。