第四章:AI 实战开发5. 初始化服务端代码

初始化服务端代码

接下来我们继续搞一下服务端的功能。

创建服务端目录

新建文件夹

首先在根目录下右键,选择”新建文件夹”,然后输入 account-backend

  • client 表示客户端
  • backend 就是服务端的意思

使用 AI 助手生成代码

创建 AI 任务

然后点击左侧的 Cursor 按钮,点击”新建任务”。

提示词呢,我们已经提前写好了,直接粘贴到这个地方。

任务提示词内容

我们来看一下提示词的内容:

我们先介绍一下项目当前的情况:

当前目录下有两个文件夹:
1. client - 它是基于 uni-best 框架实现的,已经完成了脚手架,其他功能还未开始
2. backend - 目前是空的文件夹

请根据上面的信息和下面的要求完成功能:

1. 使用 Express 来完成
2. 集成 MySQL 8
3. 集成 TypeScript 和使用 TypeORM 框架
4. 设计一个基础的登录功能
5. 登录界面跳转的逻辑
6. 抽取配置文件
7. 是否还有不清晰的地方?不清晰的可以列出来,我们来补充
💡

第三点呢,可能很多人看不懂”集成 TypeScript 和使用 TypeORM 框架”,没关系,就是照抄就行了,后面我们再去详细讲。

然后我们直接回车。

回答 AI 的问题

AI 给我们列出来了几个点,我们需要回答一下它。我们就按照顺序去回答就行了:

问题 1:短信验证码服务

AI 问: 短信验证码的服务是使用第三方的,还是使用模拟的?

我们的回答: 我们在开发阶段,肯定是需要使用模拟的。然后到正式的生产环境呢,是需要使用第三方的,比如说阿里或者腾讯的短信服务。

所以呢我们告诉他:同时实现模拟短信服务和阿里云的短信服务,然后在配置文件中支持切换。

也就是说,支持在配置文件中配置一个标记来切换使用模拟的短信,还是第三方的短信服务。

问题 2:数据库用户表的设计

我们的回答: 我们呢就使用包含扩展字段,但是允许为空。

因为我们前面的功能,可能不需要使用头像或者是昵称这些功能,所以呢我们告诉他:选 B,但是扩展字段允许为空。

问题 3:Token 方案

我们的回答: Token 方案呢我们就使用 JWT 就行了,选 A

问题 4:验证码的有效期和限制策略

我们的回答: 这里呢我们还是支持自定义配置比较好一点,所以呢选 B,但是在配置文件中给一个默认值

也就是说有一个默认值,但是呢也支持我们手动去修改。

问题 5:客户端登录页面实现的范围

我们的回答: 包含手机号的输入、验证码、登录按钮。第五点呢,我们也选 B,我们让他完成一个完整的交互。

然后再次回车。

AI 生成的设计文档

查看设计文档

现在 AI 已经帮我们生成了文档。我们来看一下这个文档。

点击右上角的这个按钮,打开侧边预览。

文档内容概览

1. 项目概述

其中包含了:

  • 项目背景
  • 技术栈规划
  • 功能范围

2. 服务端架构设计

这个架构呢我们就不看了,继续往下。

3. 数据库设计

包含了:

  • 手机号
  • 以及一些扩展的字段
  • 还有一个短信验证码的表

4. 核心模块设计

包括有:

  • 短信服务模块
  • 模拟短信的服务
  • 阿里云短信的服务

并且下面给我们列出来了一个流程图,这是短信登录的流程图。

然后下面就是认证相关的,然后是接口的设计,下面是配置文件的设计。

5. 客户端设计

  • 首先分析了现有的一个情况
  • 然后做了一个页面设计
  • 路由拦截的改造等等

这个文档非常的长,包括这里有非常长的一个流程图,下面还有路由拦截的策略,非常的详细。

简单的过一下。

执行开发任务

开始任务

然后我们现在开始让 AI 去执行这个任务。

首先点击”采纳”,然后点击”开始任务”。

现在 AI 呢,就会按照这个文档帮我们去开发功能。

任务完成

这个任务呢现在已经完成了。我们来看一下他给我们的总结:

任务完成总结

本次对话完成了基于 uni-best 框架的账号服务系统完整开发任务,主要包括:

设计并实现了一个支持短信验证码登录的完整用户认证系统,涵盖服务端和客户端两个部分。

所有的开发任务都已经完成,系统功能已完成。

并且我们看到右侧的这个界面呢已经有了。

那么我们先点”接受”。

查看生成的代码

查看后端代码目录

然后看一下后端代码的目录。

查看开发环境配置

先看一下开发环境的配置:

// 服务端口
port: 3000
 
// 数据库相关的配置
database: {
  host: 'localhost',
  port: 3306,
  // ...
}
 
// JWT 的配置
jwt: {
  secret: 'your-secret-key',
  // ...
}
 
// 短信服务相关的配置
sms: {
  provider: 'mock', // 或 'aliyun'
  // ...
}

最上面的这个 port 意思是服务端口,默认是 3000

然后下面是数据库相关的配置,再往下面是 JWT 的配置,再下面呢是短信服务相关的配置。

短信服务配置说明

我们可以看这个 example,这个它里面有比较详细的说明:

  • 使用 mock 就是表示模拟短信
  • 如果我们使用阿里云的话,那么它就会走阿里云短信的逻辑

但是,我们需要先配置一下阿里云相关的信息。

配置说明

开发环境配置

配置项说明默认值
port服务端口3000
database数据库配置MySQL 8
jwtJWT 认证配置-
sms.provider短信服务提供商mock

短信服务切换

开发阶段使用模拟短信:

sms: {
  provider: 'mock'
}

生产环境使用阿里云短信:

sms: {
  provider: 'aliyun',
  accessKeyId: 'your-access-key-id',
  accessKeySecret: 'your-access-key-secret',
  signName: 'your-sign-name',
  templateCode: 'your-template-code'
}

服务端初始化完成!

现在服务端代码已经生成完毕,包含了完整的用户认证系统和短信验证码功能。

💡

遇到问题?

如果在服务端初始化过程中遇到问题,可以扫描下方的微信二维码帮您看下(免费咨询)

下一步

服务端项目初始化完成后,接下来我们需要:

👉 下一节:数据库配置调整


相关信息

💬 扫码了解更多信息

客服微信二维码

添加微信

知识星球二维码

加入知识星球