nestjs链接MySQL

来源:21-7 使用nestjs连接mongodb数据库,并抽离配置信息

程序媛_Lisa

2024-08-27

老师,工作中用到的是MySQL数据库,查找资料后,这样使用的,麻烦看下是否合理,有没有需要改进的地方?

  • 创建entity
// feedback/entity/feedback.entity.ts
import { Column, Entity, PrimaryGeneratedColumn } from 'typeorm';

@Entity()
export class Feedback {
  // 主键自增
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  name: string;

  @Column()
  email: string;

  @Column()
  message: string;
}
  • 创建repository
import { Repository } from 'typeorm';
import { Feedback } from './entity/feedback.entity';

export class FeedbackRepository extends Repository<Feedback> {}
  • 创建service,service中调用repository完成数据库操作
import { Injectable } from '@nestjs/common';
import { Feedback } from './entity/feedback.entity';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';

@Injectable()
export class FeedbackService {
  constructor(
    @InjectRepository(Feedback)
    private FeedbackRepository: Repository<Feedback>,
  ) {}

  async findAll(): Promise<Feedback[]> {
    return await this.FeedbackRepository.find();
  }

  async create(feedback: Feedback): Promise<Feedback> {
    return await this.FeedbackRepository.save(feedback);
  }
}
  • 创建controller,controller中调用service完成业务逻辑
import {
  Body,
  Controller,
  Get,
  HttpException,
  HttpStatus,
  Post,
} from '@nestjs/common';
import { FeedbackService } from './feedback.service';
import { Feedback } from './entity/feedback.entity';

@Controller('feedback')
export class FeedbackController {
  constructor(private readonly FeedbackService: FeedbackService) {}

  @Get('test')
  test() {
    throw new HttpException('获取数据失败', HttpStatus.BAD_REQUEST);
  }

  @Post('create')
  async create(@Body() feedback: Feedback) {
    return this.FeedbackService.create(feedback);
  }

  @Get('findAll')
  async findAll() {
    return this.FeedbackService.findAll();
  }
}

写回答

1回答

双越

2024-08-27

可以的。再测试一下功能,看没问题即可。

0
1
程序媛_Lisa
功能没问题,可以实现数据的存储和读取,谢谢老师
2024-08-27
共1条回复

React18+ Nest.js 全栈开发仿问卷星项目

React18+TS4+Antd5+Next.js13 ,B端+C 端,完整业务

383 学习 · 252 问题

查看课程