从零开始搭建nestjs项目-3-配置数据库连接(typeorm)

工具版本

  1. nodejs:20.9.0
  2. npm:10.1.0
  3. nestjs:10.0.0

相关包

dotenv用来解析.env文件

pnpm i dotenv typeorm @nestjs/typeorm mysql2

配置typeorm

大概思路:将数据库的一些基础配置放到环境变量中,比如数据库的账号,密码,库名,端口号等,利用dotenv去解析.env文件,最后导出配置项,并且在app.module.ts中使用

匹配所有实体时const entitiesDir = [path.join(__dirname, '../**/*.entity{.ts,.js}')],路径容易配置错误,若报错,请先确认路径是否配置正确

注意:synchronize配置项正式环境下不要设置true,此配置会同步数据库和实体,有可能导致数据库中表的数据被清空,可以参考typeorm官方文档,有具体的解决方案

创建配置文件src/config/orm.config.ts

import { TypeOrmModuleOptions } from "@nestjs/typeorm";
import * as fs from 'fs';
import * as dotenv from 'dotenv'
import { DB_Enum } from "src/enums/typeorm-config.enum";
import * as path from "path";


// 匹配所有实体
const entitiesDir = [path.join(__dirname, '../**/*.entity{.ts,.js}')]

// 通过环境变量读取不同的.env文件
function getEnv(env: string): Record<string, string> {
    if (fs.existsSync(env)) {
        return dotenv.parse(fs.readFileSync(env))
    }
    return {}
}
// 通过dotENV来解析不同的配置
function buildConnectionOptions() {
    const defaultConfig = getEnv
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值