从0到1打造一套适合自己接单的脚手架04集成mysql


上一篇我们已经介绍了nestjs的开发流程,但是数据方面我们是使用数组演示的。通常我们需要将数据存入数据库,本篇介绍一下nestjs如何和mysql进行集成

1 安装mysql

集成mysql首先要在我们的本地电脑安装msyql,打开官方安装地址

https://dev.mysql.com/downloads/installer/

在这里插入图片描述
安装的时候选择全部内容
在这里插入图片描述
给root账号设置密码
在这里插入图片描述
输入刚刚的密码连接服务器
在这里插入图片描述
安装完毕后会弹出两个窗口,一个是命令行窗口,一个是可视化界面
在这里插入图片描述
在命令行窗口可以输入以下命令验证你的安装是否成功

/sql
/connnect root@localhost
show databases
use mysql
show talbes

可视化界面可以直接打开连接
在这里插入图片描述
也可以下载一个navicat连接,下载地址

https://www.navicat.com.cn/download/direct-download?product=navicat17_premium_lite_cs_x64.exe&location=1

在这里插入图片描述
安装成功后,可以创建一个msyql连接
在这里插入图片描述
创建好之后就可以看到我们默认的数据库
在这里插入图片描述

2 创建数据库

工具安装好了之后,我们先创建一个数据库用来存放我们的表。在连接上右键,创建数据库
在这里插入图片描述
输入数据库名称,选择字符集和排序规则
在这里插入图片描述

3 安装依赖

nestjs集成mysql需要先安装依赖,输入如下的提示词

我需要集成msyql

在这里插入图片描述
ai会要求你安装依赖

npm install @nestjs/typeorm typeorm mysql2

接着ai会帮你做好相应的配置,需要我们干预的就是在app.module.ts中修改我们数据库的密码
在这里插入图片描述

4 运行测试

修改完毕后,就可以再次运行我们的测试用例,测试之前需要先创建一下我们的用户表,在navicate里执行如下脚本

CREATE TABLE `users`  (
  `id` int NOT NULL AUTO_INCREMENT,
  `username` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  `email` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  `password` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
  `createdAt` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
  `updatedAt` datetime(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
  PRIMARY KEY (`id`) USING BTREE,
  UNIQUE INDEX `IDX_fe0bb3f6520ee0469504521e71`(`username` ASC) USING BTREE,
  UNIQUE INDEX `IDX_97672ac88f789774dd47f7c8be`(`email` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

然后在trae的终端里执行脚本测试命令

npm run test:e2e

看到测试通过表示我们的代码已经没有啥问题了
在这里插入图片描述
然后刷新表,可以看到数据已经正确的写入进来了
在这里插入图片描述

总结

我们本篇介绍了nestjs集成msyql的过程,包括安装mysql、navicate,创建数据库,安装必要的依赖,修改nestjs相关的配置以及执行测试。有了ai的辅助,可以一步步的提问,由ai来完成各种配置,我们再运行测试来验证结果,还是很方便的。