使用generator-express-no-stress-typescript脚手架工具创建一个图片上传服务的模板工程,执行如下指令:
npm config set registry https://registry.npmmirror.com
yo express-no-stress-typescript uploadService
可以看到后端框架如下:
先输入终端npm run dev
输入localhost:3000
这里面的接口都是写在api.yml里的tags里
具体接口写在paths里
写在components里是请求的接口详细格式
这个接口格式是要在services下的examples.service.ts
服务层里
代码里导出ExamplesService
类,里面有三个方法
all() 方法、byId(id: number) 方法、create(name: string) 方法
这个类定义了与业务逻辑相关的操作,特别是与示例数据(Example
)相关的操作。它包含以下方法:
- all():返回所有示例的列表。
- byId(id: number):根据给定的 ID 返回单个示例。
- create(name: string):创建一个新的示例,并将其添加到示例列表中。
Controller
(控制器层)
控制器层负责处理 HTTP 请求,调用服务层的方法,并返回响应。它定义了以下方法:
- all():处理获取所有示例的 HTTP 请求。
- byId(req: Request, res: Response):处理获取特定 ID 示例的 HTTP 请求。
- create(req: Request, res: Response):处理创建新示例的 HTTP 请求。
这种分层结构的优点,让业务逻辑与 HTTP 请求处理分离,使得代码更易于管理和维护。
定义路由
-
.post('/', controller.create)
:定义了一个 POST 路由,当客户端向服务器的根路径('/')发送 POST 请求时,将调用controller.create
方法来处理请求。这通常用于创建新资源。 -
.get('/', controller.all)
:定义了一个 GET 路由,当客户端向服务器的根路径发送 GET 请求时,将调用controller.all
方法来处理请求。这通常用于获取所有资源的列表。 -
.get('/:id', controller.byId)
:定义了一个 GET 路由,当客户端向服务器的/:id
路径发送 GET 请求时(其中:id
是一个动态参数,代表资源的标识符),将调用controller.byId
方法来处理请求。这通常用于获取特定资源的详细信息。