Deno + Express REST API 教程(第二部分):测试、基准与 Docker 部署指南
作者:API传播员 · 2025-10-10 · 阅读时间:4分钟
本教程第二部分详细介绍了如何使用Express、TypeScript和Deno构建REST API的进阶步骤,包括添加测试和基准测试以验证API性能和代码覆盖率,以及如何构建和运行Docker容器。文章还提供了性能优化建议和基准测试数据的导出方法,帮助开发者进一步提升API服务的效率和可靠性。
一. 简介
在本教程的第一部分中,我们已经成功使用 Deno 和 Express 在几分钟内构建并运行了一个基础 REST API,无需额外配置。如果你还未阅读第一部分,建议先查看并克隆配套代码仓库,以便更好地理解本教程内容。
在本教程第二部分中,我们将进一步完善项目:
- 添加 测试和基准测试,评估代码更改对 API 服务性能的影响。
- 构建并启动 Docker 容器,完成整个开发流程。
二. 添加测试和基准测试
为了确保 API 各路由返回预期结果,我们将使用 Deno 内置测试工具进行 功能验证,并通过基准测试评估性能。
1. 创建测试文件
我们创建了 main_tests.ts
文件,用于编写测试代码。主要逻辑如下:
- 通过发出请求并等待响应代码,验证特定调用是否返回正确数据。
- 使用异步函数和
fetch()
方法进行请求操作。
测试示例代码如下:
// 示例代码略
2. 添加基准测试
除了验证响应内容,还需测量响应时间。Deno 内置基准测试工具会自动识别以 _bench
结尾的文件。
我们创建了 main_bench.ts
文件,主要关注请求从发起到结束的耗时,而非客户端解析响应的时间:
// 示例代码略
通过这种方式,可以更准确评估 API 性能。
三. 构建和运行 Docker 容器
1. 配置 Docker
项目容器化需要以下两个文件:
docker-compose.yml
:定义容器详细信息。Dockerfile
:构建 Docker 镜像。
Dockerfile 示例结构如下:
# 示例 Dockerfile 略
该文件设置工作目录 /app
,复制项目文件,并通过 deno-cache
缓存依赖。容器启动时将运行 task start
(已在 deno.json
中定义)。
2. 启动容器
使用以下命令启动容器并构建镜像:
$ docker compose up --build
启动完成后,可在 Docker 桌面应用查看容器状态。
四. 运行测试和基准测试
1. 执行测试
在容器启动后,通过以下命令运行测试:
$ deno test -A
示例测试结果如下图所示:
2. 执行基准测试
运行基准测试命令:
$ deno bench -A
示例基准测试结果如下图:
五. 性能优化建议
基准测试显示,中间件中大量日志记录影响性能。优化步骤如下:
- 打开
main.ts
文件,找到请求日志中间件reqLogger()
。 - 注释掉控制台输出代码。
- 启动开发服务并验证更改:
$ deno task dev
- 测试完成后,可重新构建镜像或推送至 CI 服务器。
⚠️ 注意:基准测试数值可能因本地设备配置而异。
六. 导出基准数据
Deno 支持将基准测试结果导出为 JSON 格式,便于自动化测试和可视化:
$ deno bench -A --json
七. 总结
在本教程第二部分中,我们完成了以下任务:
- 添加 测试和基准测试,确保 API 功能与性能。
- 配置并构建 Docker 容器,实现项目容器化部署。
- 通过禁用冗余日志等方式 优化性能。
接下来,你可以继续扩展项目:
- 连接真实数据存储,完善路由逻辑。
- 进一步优化测试和基准测试流程,实现持续性能监控。
原文链接: https://deno.com/blog/build-api-express-typescript-pt2
热门推荐
一个账号试用1000+ API
助力AI无缝链接物理世界 · 无需多次注册
3000+提示词助力AI大模型
和专业工程师共享工作效率翻倍的秘密
热门API
- 1. AI文本生成
- 2. AI图片生成_文生图
- 3. AI图片生成_图生图
- 4. AI图像编辑
- 5. AI视频生成_文生视频
- 6. AI视频生成_图生视频
- 7. AI语音合成_文生语音
- 8. AI文本生成(中国)