nest.js连接mysql数据库

NestJS 实战:连接 MySQL、数据操作与接口文档配置 阅读详情

一、加载mysql2、typeorm、@nestjs/typeorm

为什么使用三个插件?

typeorm 是一个 TypeScript ORM(对象关系映射)框架,它提供了一种将对象模型映射到关系型数据库中的方法,以及提供了对 SQL 和 NoSQL 数据库的支持。同时,typeorm 还提供了一些高级特性,如事务处理、缓存、延迟加载等功能,使开发者可以更加方便地进行数据库操作。
@nestjs/typeorm 是基于 typeorm 的一个 Nest.js 模块,它提供了一种将 typeorm 集成到 Nest.js 应用中的方法。通过使用 @nestjs/typeorm,开发者可以在 Nest.js 应用中更加方便地使用 typeorm 进行数据库操作。
mysql2 是 MySQL 数据库的 Node.js 驱动程序,它提供了一种与 MySQL 数据库进行交互的方法。通过使用 mysql2,开发者可以在 Node.js 应用中访问 MySQL 数据库。
因此,typeorm 和 @nestjs/typeorm 都是用来方便开发者对数据库的操作,而 mysql2 则是提供了访问 MySQL 数据库的方法。在 Nest.js 应用中,一般会使用 @nestjs/typeorm 集成 typeorm 并使用 mysql2 作为 typeorm 的驱动程序,简单来说@nestjs/typeorm依赖typeorm,typeorm依赖 mysql2 ,缺一不可
。
当然也可以直接使用mysql2进行链接数据库。

npm install --save @nestjs/typeorm typeorm mysql2

二、创建数据库实体类./user.entity文件
在 Nest.js 应用中,需要创建实体类来映射数据库中的表。
@PrimaryGeneratedColumn() 是 typeorm 模块提供的一个装饰器,用于指定实体类中的主键,并且生成主键的值是由数据库生成的自增长数值。在一个实体类中,通常需要指定一个或多个属性作为主键,以标识实体类的唯一性。使用 @PrimaryGeneratedColumn() 装饰器可以将一个属性设置为自动生成的主键。
可以在 src 目录下创建一个 user.entity.ts 文件,并添加以下内容:
在代码中,@PrimaryGeneratedColumn() 装饰器指定了 id 属性为主键,并且生成主键的值是由数据库生成的自增长数值。当插入一条新的用户数据时,数据库会自动为该用户生成一个新的自增长 id 值。

import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';


@Entity()
export class User {

  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  name: string;

  @Column()
  password: string;
}

三、创建数据库服务
下面以app.module.ts文件为示例
这里使用了 TypeOrmModule.forRoot()和TypeOrmModule.forFeature(),这两个方法缺一不可。
TypeOrmModule.forRoot() 方法用于创建数据库连接,并指定连接的参数、实体类、自动同步等选项。这个方法应该在应用程序的根模块(AppModule)中使用,并且只需要调用一次。

TypeOrmModule.forFeature() 方法用于注册需要在本模块中使用的实体类。这个方法可以在任何模块中使用。
一个是连接一个是注册。

import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { User } from './user.entity';
@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'mysql',
      host: 'localhost', // 服务器地址
      port: 3306, // 端口号
      username: '', // 数据库用户名
      password: '', // 数据库密码
      database: 'test', // 数据库名
      entities: [User], // 实体类
      synchronize: true, // 自动同步数据库结构
    }),
    TypeOrmModule.forFeature([User]), // 注册实体类
  ],
})
export class AppModule {}

四、进行数据库查询

import { Body, Controller, Get, Post, Req, Res,Param } from "@nestjs/common";
import { Repository } from 'typeorm';
import { User } from '../entities/login.entity';
import { InjectRepository } from '@nestjs/typeorm';

@Controller("login")
export class LoginController {
  constructor( 
    @InjectRepository(User)
    private readonly userRepository: Repository<User>
  ) {}
	//保存
  @Post('save')
  async createUser(@Body() user: User): Promise<User> {
    console.log(user)
    return await this.userRepository.save(user);
  }
  //查找全部
  @Get('findAll')
  async findAll(): Promise<User[]> {
    return await this.userRepository.find();
  }
  //查找某一条
  @Get('findOne')
  async findOne(@Param('id') id: number): Promise<User> {
    return await this.userRepository.findOneBy({
      id: id // where id is your column name
    });
  }
  //更新
  @Post('update')
  async update(@Body() userData: User): Promise<User> {
    const data = new User();
    data.name = userData.name;
    data.password = userData.password;
    await this.userRepository.update(userData.id, data);
    return await this.userRepository.findOneBy({
      id: userData.id // where id is your column name
    });
  }
  //删除
  @Post('delete')
  async delete(@Body() userData: User): Promise<void> {
    await this.userRepository.delete(userData.id);
  }
}
nestjs入门(controller,service,module) 通过项目目录初步认识nestjs以及命令创建相关的文件目录 阅读详情

相关推荐

Nest.js Sequelize ORM到数据库(MySQL & PostgreSQL)示例

深入研究这个NestJS Sequelize教程,学习如何在NestJS中使用Sequelize创建一个示例数据库连接到PostgreSQL、MySQL和SQLite。NestJS允许您使用Node.js和TypeScript创建开箱即用的应用程序架构。它与Sequelize模块集成得很好。这样,您可以在代码中创建模型,Sequelize ORM会处理使用SQL数据库(如MySQL和PostgreSQL)的数据库操作。

欧阳天涵的专栏 931

NodeJS-NestJS:TypeORM 连接mysql数据库,增删改查

NestJS:TypeORM 连接mysql数据库,增删改查

snow的博客 4358

PowerBuilder 9.0安装组件全解析:Adaptive Server Anywhere、PowerDynamo、InfoMaker到底怎么选?

本文从技术架构师视角详细解析PowerBuilder 9.0安装组件选型策略,包括Adaptive Server Anywhere、PowerDynamo和InfoMaker的核心功能与应用场景。通过分析组件间的依赖关系和安装冲突机制,提供针对不同开发需求的最佳安装方案,帮助开发者高效配置PB9.0开发环境。

weixin_28700593的博客 441

nestjs[连接mysql数据库]

nest.js 本身支持建议使用TypeORM 模块来处理数据库相关的操作,它为许多不同的数据库提供了支持,以 MySQL 为例,使用的官方的hello-world项目做示例。由于个人感觉没太大的必要将这个连接配置外置到一个文件中,因此这里不做说明,但是网上或者官网都有对应的操作方式,查阅即可。这里的操作中没有任何的sql查询,直接用了find()方法查询出了所有数据,可以参考typeorm中文官网。这里主要做了数据库连接配置TypeOrmModule.forRoot()以及子模块的加载注册。

墨水白云的博客 1万+

2026 AI编程环境安装指南:从下载、部署到流式验证

AI编程环境已不再是传统软件安装,而是融合硬件兼容性、模型运行时与IDE插件协同的系统工程。其核心原理在于:本地GPU驱动需匹配量化运行时(如Ollama v0.3+对CUDA 12.1+的强制要求),协议层依赖gRPC流式响应,生态层则要求插件签名与模型源可信校验。这一技术组合显著提升AI代码生成的实时性与生产就绪度,支撑微服务开发、CI/CD智能补全、本地LLM推理等关键场景。本文聚焦AI编程软件下载与安装过程中的可复现部署实践,覆盖macOS/WSL2双平台、NVMe模型加速、离线校验及原子化功能验证

weixin_30480075的博客 583

(10)Proteus 8.9上的STM32仿真系列(HAL)---freertos

实验设计:通过cubemxide生成freertos工程,然后创建一个 pc13 led灯间隔200ms闪烁的任务。非常遗憾的是proteus8.9仿真失败,实物上没有问题,但还是把流程过一遍。 一、原理图 实物是淘宝上stm32f103 c8t6的核心板,proteus上没有这个芯片,这里图上大概表示一下,用的是核心板自带的pc13引脚的led灯。 二、cubemxide配置 1.RCC如之前工程一样配置 2、配置SYS timebase Source不要使用systick,自己选择一个定时器,我这

qq_35442550的博客 7344

nestjs连接MySQL数据库操作

1、利用nestjs和typeorm对MySQL进行简单的增删查改操作。2、实现简单增删查改的接口编写3、使用测试工具对接口进行测试2、已经安装了nodejs和npm,并且安装了nestjs手脚架;3、本文使用的是typeorm连接数据库操作提示:以下是本篇文章正文内容,下面案例可供参考学会nestjs连接数据库,编写简单的接口对数据库进行简单的增删查改操作。

weixin_60597554的博客 3285

深入解析EtherCAT通讯DS402协议下的伺服电机控制模式选择与配置

本文深入解析了EtherCAT通讯DS402协议下的伺服电机控制模式选择与配置,详细介绍了六种核心控制模式(如PPM、CSP、CSV、CST)的应用场景及实战技巧。通过EtherCAT和DS402协议的高效配合,实现工业自动化中伺服电机的精准控制,提升设备性能与稳定性。

h0i1j2k3l的博客 1174

nestjs配置MySQL数据库_数据库连接配置《 Nest.js 应用框架:数据库 》

先要给项目安装几个依赖的模块,在终端,安装 @nestjs/typeorm,typeorm 本身,还需要一个数据库引擎,我们用的是 MySQL 数据库系统,所以这里还得再安装一下 mysql ,把它们保存在项目的依赖里。Nest.js 集成了 TypeORM,我们可以把 TypeORM 想成是一套处理数据库用的方法,使用这些方法可以操作不同类型的数据库里的数据。安装完成以后,再回到项目,打开应...

weixin_39618339的博客 883

动态SLAM中的YOLO与ORB-SLAM3融合:实时目标检测与动态点云滤除实战

本文介绍了如何结合YOLOv5目标检测与ORB-SLAM3视觉SLAM系统,实现动态环境下的目标检测与视觉SLAM任务。文章详细阐述了从源码下载、依赖安装(包括libtorch配置)、编译运行步骤(包括ROS环境和非ROS环境下的编译方法),到RGBD-TUM数据集准备与关联处理的全流程。同时针对常见错误提供了解决方案,如libtorch路径配置、ROS环境冲突等。最后展示了系统运行方法,并探讨了未来可能的优化方向,包括增强目标检测能力和改进动态环境下的地图构建。该集成系统为机器人智能导航和环境感知提供了有

LXY_LOVE36的博客 237

一篇文章轻松入门Nest.js

Nest.js框架入门学习

2403_87076697的博客 3865

基于STM32的IMU惯性/姿态解算与多参数上位机可视化实现_资料编号38

本项目实现基于STM32F103C8T6标准库,对姿态/惯性(IMU)传感器姿态解算,通过USB-TTL转串口模块将姿态角/欧拉角、加速度、角速度、磁场、气压、海拔高度、磁力计温度、气压计温度等数据显示在PC端上位机,系统采用可充电锂电池供电。

嵌入式阿齐Archie 1万+

js怎么查询mysql数据库,Nest.js连接mysql数据库及查询的配置

在线QQ客服:1922638专业的SQL Server、MySQL数据库同步软件nest.js使用内置的数据库处理模块,该模块不仅支持MySQL,还支持许多不同的数据库。我们选择TypeORM是因为它肯定是迄今为止最成熟的对象关系映射器(ORM)。使用时:1npm install--save @ nestjs/typeorm typeorm mysql安装完成后,在app.module.ts中添加...

weixin_31893057的博客 593

2025年5月架构设计师论文真题回顾,附写作技巧、所涉知识点及参考范文(三)

本文主要回顾2025年上半年(2025-5-24)系统架构设计师考试下午论文的题目,同时附带写作技巧、所涉知识点及参考范文。试题三:多模型数据库及应用。

一几文的编程学习笔记。 630

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

js mysql查询数据库数据库,Nest.js连接mysql数据库及查询的配置

数据库配置nest.js 使用内置的 TypeORM 数据库处理模块,它为许多不同的数据库提供支持,不仅有 MySQL 。我们选择了TypeORM,因为它绝对是迄今为止最成熟的对象关系映射器(ORM)。使用时:1npm install --save @nestjs/typeorm typeorm mysql安装完成后,在 app.module.ts 中加入数据库配置:123456789101112...

weixin_29868343的博客 928

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

nest全栈项目

nest全栈项目实践

aiyucheng123的博客 435

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

nest.js入门

nest.js是一个高效,可扩展的node.js服务器端web框架,node.js提供了一个灵活的运行时环境,而nest.js提供了更高层次的组织架构。特点:支持原生typescript的框架;可以基于express也可以选择fastify(快,更高效),也可以用express直接访问其api。 (转载+理解补充)

qq_66281352的博客 1097

学完这篇 Nest.js 实战,还没入门的来锤我!(长文预警)

大厂技术高级前端Node进阶点击上方程序员成长指北,关注公众号回复1,加入高级Node交流群前言最近一直比较忙, 而且自己工作中做的事也不适合写文章,所以一直没有更文..最近接到...

程序员成长指北 6506

node.js 入门级基础应用

node.js 入门级基础应用

m0_51244077的博客 1741

小米商城移动端全栈项目开发实战经验

在本篇博客中,我将分享如何构建一个类似于小米商城的移动端全栈项目。项目采用前后端分离的架构,后端使用了Nest.js框架,数据库选择MySQL来存储用户信息和商品数据。前端通过 ** Fetch** 与后端进行数据交互,确保数据的实时性与准确性。作为一个刚刚学习Nest.js的开发者,在项目开发过程中遇到了不少问题,并通过实践找到了相应的解决方案。希望这篇博客能对正在进行全栈开发的你有所帮助。点击这里

sasa66697的博客 890

Nest.js实战开发(第一弹)-连接mysql

为什么选用nest.js开发?  之前也是使用过egg.js写过增删改查,对于egg.js的给我的体验感约束性很强,文档也很完善,但是对于Typescript的支持并不好,都2022年了,ts的应用也该很广泛了吧,所以此次开发选择了nest.js~ 安装依赖包 npm install @nestjs/typeorm typeorm mysql2 -S 建立配置  对于我们连接mysql的账密以及ip,我们将其存储在.env/.env.prod中。我们在根目录创建config文件夹,并创建env

认定的总要想办法去完成。 3603

Nest.js 从零到壹系列(二):数据库的连接

本文由图雀社区认证作者布拉德特皮写作而成,点击阅读原文查看作者掘金链接,感谢作者的优质输出,让我们的技术世界变得更加美好????前言上一篇介绍了如何创建项目、路由的访问以及如何创建模...

指尖泛出的繁华 1147

某天没有数据能查出来0数量_Nest.js 从零到壹系列(二):数据库的连接

本文由图雀社区认证作者布拉德特皮写作而成,点击阅读原文查看作者掘金链接,感谢作者的优质输出,让我们的技术世界变得更加美好?前言上一篇介绍了如何创建项目、路由的访问以及如何创建模块,这篇来讲讲数据库的连接与使用。既然是后端项目,当然要能连上数据库,否则还不如直接写静态页面。本教程使用的是 MySQL,有人可能会问为啥不用 MongoDB。。。呃,因为公司使用 MySQL,我也是结合项目...

weixin_39988779的博客 461

小米商城全栈项目

小米商城全栈项目采用了前后端分离的设计思路,后端的我使用到了nest.js框架,数据库方面,项目选择了MySQL来存储用户信息和商品数据。然后通过引用axios来获取后端数据,确保数据的实时性和准确性,因为刚刚才学习了nest.js框架,在本次项目中也遇到了一些问题,同时,我会将遇到的问题与解决思路给到大家,希望看完这篇博客对您会有一些帮助。点这里<<<

whhhhhhhhhw的博客 1457

【亲测免费】 云策文档项目常见问题解决方案

云策文档是一款开源的知识管理工具,通过独立的知识库空间,结构化地组织在线协作文档,实现知识的积累与沉淀,促进知识的复用与流通。该项目支持多人协作文档,主要使用的技术包括: - **MySQL**:用于数据存储。 - **Next.js**:前端页面框架。 - **Nest.js**:服务端框架。 - **Tiptap**:编辑器及文档协作。 主要的编程语言为 **TypeScript**,项目...

gitblog_00496的博客 912
上一篇: blob 转base64;base64转blob
下一篇: 【mavon-editor】内容回显,二次编辑图片无法展示到图片控制列表
言只  石皮
博客等级 码龄7年 21粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

言只 石皮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值