nestjs连接MySQL数据库操作


前言

大概内容:

1、利用nestjs和typeorm对MySQL进行简单的增删查改操作。
2、实现简单增删查改的接口编写
3、使用测试工具对接口进行测试
实验环境:

1、window11+vscode;
2、已经安装了nodejs和npm,并且安装了nestjs手脚架;
3、本文使用的是typeorm连接数据库操作


提示:以下是本篇文章正文内容,下面案例可供参考

项目源码

https://gitee.com/ciqiqq/crud.git

项目起步

window管理员控制台,linux是不需要管理员权限的,因为vscode不允许管理员打开,可能会造成不可预知的错误。

# 创建nestjs项目
nest new demo-name # 这里的demo-name是你的项目名称
# 进入刚刚创建的项目的文件夹
cd demo-name
#从该demo-name文件夹进入vscode
code .

示例

nest new nest-rabc
cd nest-rabc
code .

出现代码报红的情况

刚创建的项目,代码明明是正确的却报红的原因:prettier校验 和 ESLint校验 冲突
image.png
右侧文件栏右键选择Open in Integrated Terminal(打开vscode控制台)
image.png
在vscode控制台输入

npm run lint

代码运行之后出现下图就不会报错啦,以后出现这类问题都可以使用这句代码
image.png

挂载swagger

在 NestJS 中集成 Swagger 可以使你更容易地创建、文档化和测试 API。
如果用不惯swagger可以不挂载的,直接使用其他测试接口工具也是可以的,比如apifox,posman等
vscode控制台

npm install @nestjs/swagger swagger-ui-express --save

main.ts挂载swagger具体代码

import {
    SwaggerModule, DocumentBuilder } from '@nestjs/swagger';

const config = new DocumentBuilder()
  .setTitle('CRUD')
  .setDescription('数据库 增删查改 ')
  .setVersion('1.0')
  .build();
const document = SwaggerModule.createDocument(app, config);
SwaggerModule.setup('api', app, document);

main.ts完整代码

import {
    NestFactory } from '@nestjs/core';
import {
    SwaggerModule, DocumentBuilder } from '@nestjs/swagger';
import {
    AppModule } from './app.module';

async function bootstrap() {
   
  const app = await NestFactory.create(AppModule);

  const config = new DocumentBuilder()
    .setTitle('Cats example')
    .setDescription('The cats API description')
    .setVersion('1.0')
    .addTag('cats')
    .build();
  const document = SwaggerModule.createDocument(app, config);
  SwaggerModule.setup('api', app, document);

  await app.listen(3000);
}
bootstrap();

创建增删改查生成器CRUD(仅限 TypeScript)

在 NestJS 中,CRUD 指的是在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中DataBase或者持久层的基本操作功能。CRUD 操作在 NestJS 中通常是通过创建控制器来完成的,例如使用 Nest 提供的 @nestjs/typeorm 包中的 TypeOrmModule 和 TypeOrmCrudModule 来快速创建 CRUD 控制器。这些控制器提供了增查改删的基本操作,使得开发人员能够以类型安全的方式与数据库进行交互,并能够定义实体之间的各种关系,以及处理实体之间的关系。
在vscode控制台输入

# 创建增删改查生成器,简称CRUD
nest g resource resource-name # 这里的resource-name是你的增删改查生成器名称
#nest g res user # 这行代码的作用和上行代码的作用是一样的

示例

# 创建资源user
nest g res user --no-spec # --no-spec禁用测试文件生成
# 或 nest g resource user

回车之后选择REST API,然后回车就会自动选择Yes,出现下图即创建成功
image.png
出现下图红色框起来的文件部分即创建成功
image.png

安装插件Database Client

image.png

然后连接本地MySQL数据库,配置好后点击底部+Connect即可

image.png

结果显示
image.png

typeorm连接MySQL数据库

TypeORM是一个基于TypeScript和JavaScript的对象关系映射(ORM)框架,可以在多种平台上运行,包括Node.js、浏览器、Cordova、PhoneGap、Ionic、React Native、Expo和Electron等。它支持与TypeScript和JavaScript的最新特性一起使用,并提供了额外的特性以帮助开发人员开发任何使用数据库的应用程序,无论是有几张表的小型应用还是拥有多数据库的大型企业应用。通过TypeORM,开发人员可以以类型安全的方式与数据库进行交互,并能够定义实体之间的各种关系,以及处理实体之间的关系。它还提供了一个功能强大的查询

Nest.js 是一个基于 Node.js 的开源 Web 框架,它提供了一种模块化的结构,使得构建高效、可维护的服务器端应用变得简单。如果你想要在 Nest.js 中连接达梦(DM)数据库,你可以按照以下步骤操作: 1. 安装依赖:首先需要安装 `typeorm` 和对应的 DM 数据库驱动包。打开终端,运行: ``` npm install typeorm @nestjs/typeorm dm2 driver ``` 2. 配置 TypeORM:在你的项目中创建或更新 `ormconfig.json` 文件,添加 DM 数据源配置,例如: ```json { "type": "mysql", "host": "your_host", "port": your_port, "username": "your_username", "password": "your_password", "database": "your_database", "driver": "dm2" } ``` 3. 创建实体(Entity):定义你要与数据库交互的数据模型,比如 `User.ts`: ```typescript import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm'; @Entity() export class User { @PrimaryGeneratedColumn('increment') id: number; @Column() name: string; } ``` 4. 注册数据库服务:在 NestJS的服务或模块中注入 `TypeOrmModule`,并注册你的数据层: ```typescript import { Module } from '@nestjs/common'; import { TypeOrmModule } from '@nestjs/typeorm'; import { AppController } from './app.controller'; import { AppService } from './app.service'; import { User } from './entities/user.entity'; // 引入User实体 @Module({ imports: [ TypeOrmModule.forRoot(), // 如果ormconfig已经设置,则可以省略这行 TypeOrmModule.forFeature([User]), // 注册实体 ], controllers: [AppController], providers: [AppService], }) export class AppModule {} ``` 5. 使用数据库服务:现在可以在控制器或服务中使用 `@InjectRepository(User)` 来操作 `User` 实体。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值