1安装相关插件
$ npm install --save @nestjs/typeorm typeorm mysql2
2,在app.modules.ts 中引入
...
...
...
// 以上是其他相关引入,此处略过
import { TypeOrmModule } from '@nestjs/typeorm';
// 我定义一个导航的表做测试
import { Nav } from './entity/nav.entity';
@Module({
imports: [
TypeOrmModule.forRoot({
type: 'mysql',
host: 'localhost',
port: 3306,
username: 'root',
password: '***你的密码',
database: 'test', // 这个数据库名字一定提前新建好,不然会报错
entities: [__dirname + '/**/*.entity{.ts,.js}'],
synchronize: true,
}), // 数据库的
TypeOrmModule.forFeature([Nav]),
],
controllers: [AppController],
providers: [AppService],
})
export class AppModule {}
这是nav实体,简单测试就两个字段
import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';
@Entity()
export class Nav {
@PrimaryGeneratedColumn()
id: number;
@Column()
title: string;
}
3,在服务里操作数据库
app.service.ts
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { Nav } from './entity/nav.entity';
@Injectable()
export class AppService {
constructor(
@InjectRepository(Nav)
private readonly nav: Repository<Nav>,
) {}
async getNav() {
return await this.nav.find();
}
}
4.就可以在控制器里使用服务了
app.controller.ts
import {
Controller,
Get,
Post,
Response,
} from '@nestjs/common';
import { AppService } from './app.service';
@Controller()
export class AppController {
constructor(private readonly appService: AppService) {}
@Get('/getnav')
async getNav(@Response() res) {
const list = await this.appService.getNav();
res.send({
list: list,
});
}
}