上一篇我们已经介绍了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来完成各种配置,我们再运行测试来验证结果,还是很方便的。