代码示例参考地址代码地址
一、配置环境变量
1. 配置env环境配置
安装@nestjs/config 笔者用的 "@nestjs/config": "^3.1.1"
pnpm i @nestjs/config
2. 创建 `.env .env.development .env.production `三个文件夹
.env文件
DB_TYPE=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_SYNC=false
LOG_LEVEL=info
LOG_ON=false
.env.development
DB_DATABASE=testdb
DB_HOST=xxxxx
DB_PORT=3306
DB_USERNAME=root
DB_PASSWORD= xxxxx
# 用在开发过程中,作用:同步实体->数据库
DB_SYNC=true
.env.production
DB_DATABASE=proddb
DB_HOST=yourdomain.com
DB_PORT=3306
DB_USERNAME=root
DB_PASSWORD=long-random-password
DB_SYNC=false
二、配置typeorm
配置typeorm [中文官网](https://typeorm.bootcss.com/)
安装 `pnpm i --save @nestjs/typeorm typeorm mysql2`
app.module.ts文件连接数据库(代码参考)
TypeOrmModule.forRoot({
type: 'mysql',
host: process.env.DB_HOST,
port: parseInt(process.env.DB_PORT, 10),
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
database: process.env.DB_DATABASE,
entities: [__dirname + '/**/*.entity{.ts,.js}'],
synchronize: true,
logging: true,
}),
完整代码参考:
import { TypeOrmModule } from '@nestjs/typeorm';
import { Module } from '@nestjs/common';
import { ConfigModule } from '@nestjs/config';
import { UserModule } from './user/user.module';
const envFilePath = `.env.${process.env.NODE_ENV || `development`}`;
@Module({
imports: [
ConfigModule.forRoot({
envFilePath,
isGlobal: true,
}),
TypeOrmModule.forRoot({
type: 'mysql',
host: process.env.DB_HOST,
port: parseInt(process.env.DB_PORT, 10),
username: process.env.DB_USERNAME,
password: process.env.DB_PASSWORD,
database: process.env.DB_DATABASE,
entities: [__dirname + '/**/*.entity{.ts,.js}'],
synchronize: true,
logging: true,
}),
UserModule,
],
controllers: [],
providers: [],
})
export class AppModule {}
目录参考