当前位置: 首页 > news >正文

在Nestjs使用mysql和typeorm

1. 创建项目

nest new nest-mysql-test

2. 添加config

安装 @nestjs/config 包

pnpm i --save @nestjs/config

添加 .env 文件

DATABASE_HOST=localhost
DATABASE_PORT=3306
DATABASE_USERNAME=root
DATABASE_PASSWORD=123456
DATABASE_DB=dbtest

创建 config/database.config.ts 文件

import { registerAs } from '@nestjs/config';export default registerAs('database', () => ({type: process.env.DATABASE_TYPE || 'mysql',host: process.env.DATABASE_HOST || 'localhost',port: parseInt(process.env.DATABASE_PORT, 10) || 3306,username: process.env.DATABASE_USERNAME,password: process.env.DATABASE_PASSWORD,database: process.env.DATABASE_DB,
}));

添加 common 模块

nest g module common

修改 common.module.ts

import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import databseConfig from 'src/config/databse.config';@Module({imports: [ConfigModule.forRoot({isGlobal: true,load: [databseConfig],}),],
})
export class CommonModule {}

3. 添加typeorm

安装依赖包

pnpm install --save @nestjs/typeorm typeorm mysql2

修改 common.module.ts

import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { TypeOrmModule } from '@nestjs/typeorm';
import databseConfig from 'src/config/databse.config';@Module({imports: [ConfigModule.forRoot({isGlobal: true,load: [databseConfig],}),TypeOrmModule.forRootAsync({imports: [ConfigModule],inject: [ConfigService],useFactory: (configService: ConfigService) => ({...configService.get('database'),entities: [],autoLoadEntities: true,synchronize: true,}),}),],
})
export class CommonModule {}

4. 添加实体

创建 entity/user.entity.ts 文件

import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';@Entity()
export class User {@PrimaryGeneratedColumn()id: number;@Column()firstName: string;@Column()lastName: string;@Column({ default: true })isActive: boolean;
}

在 common 模块中引入 user 实体

import { User } from '../entity/user.entity';@Module({imports: [...TypeOrmModule.forRootAsync({...useFactory: (configService: ConfigService) => ({...entities: [User],}),}),],
})
export class CommonModule {}

5. 运行项目

http://www.lryc.cn/news/421614.html

相关文章:

  • 【数据库】MySql深度分页SQL查询优化
  • 黑马Java零基础视频教程精华部分_14_正则表达式
  • 20240812 每日AI必读资讯
  • C++ 项目中的类框架
  • 【Python随笔】比PyQt5更先进的pyside6安装和使用方法
  • 如何给 VMware Workstation 虚拟机配置代理
  • 前端路由VueRouter总结
  • 基于SpringBoot+Vue的铁路订票管理系统(带1w+文档)
  • Firefox滚动条在Win10和Win11下表现不一致问题?
  • vue3 组件传参
  • unity自动添加头部注释脚本
  • Raw格式化后文件能恢复吗 电脑磁盘格式化后如何恢复数据 硬盘格式变成了raw怎么恢复
  • Android targetSdkVersion改成33遇到的坑
  • 1985-2023年中国城市统计年鉴(PDF+EXCEL)
  • 从AI小白到大神的7个细节:让你开窍逆袭
  • AIxBoard部署BLIP模型进行图文问答
  • 小白零基础学数学建模应用系列(一):探索自由下落模型——以“坠落的硬币”为例
  • linux主机间免密登录
  • 【海思SS626 | VB】关于 视频缓存池 的理解
  • RCE漏洞及绕过
  • 非对称加密算法-ECDHE
  • 10分钟学会Docker的安装和使用
  • 江科大/江协科技 STM32学习笔记P20
  • CSS 实现两边固定宽,中间自适应
  • C#图片批量下载Demo
  • 部署Springboot + Vue 项目到远程服务器Windows10系统的详细配置
  • 智驭灌区,科技领航—— 高效灌区信息化系统管理平台
  • 下载免费设计素材,有这7个网站就够了
  • 【漏洞复现】某赛通数据泄露防护(DLP)系统 NetSecConfigAjax SQL注入漏洞
  • c++中的仿函数