Web后台服务开发——数据库查询之实现一个简单的select

文章转自 极客论坛

第一步 创建module和service

在命令行执行如下命令,创建名为Person的module和service。

nest g module person
nest g service person

这时,会自动生成名为person的目录

第二步 创建entity

在person目录中创建文件person.entity.ts,写入如下内容

import { Entity, Column, PrimaryGeneratedColumn } from 'typeorm';

@Entity()
export class Person {
    @PrimaryGeneratedColumn()
    id: number;

    @Column({ length: 100 })
    name: string;

    @Column('int')
    age: number;
}

第三步 修改service

修改person.service.ts,内容如下

import { Injectable } from '@nestjs/common';
import { Repository } from 'typeorm';

import { Person } from './person.entity';
import { InjectRepository } from '@nestjs/typeorm';

@Injectable()
export class PersonService {
    constructor(
        @InjectRepository(Person)
        private readonly personRepo: Repository<Person>
    ) { }

    findAll(): Promise<Person[]> {
        return this.personRepo.find();
    }
}

第四步 修改module

修改person.module.ts,内容如下

import { Module } from '@nestjs/common';
import { PersonService } from './person.service';
import { TypeOrmModule } from '@nestjs/typeorm';

import { Person } from './person.entity';

@Module({
  imports: [TypeOrmModule.forFeature([Person])],
  providers: [PersonService],
  exports: [PersonService] // 这里要把PersonService导出,因为我们要在root module中使用它
})
export class PersonModule { }

第五步 修改controller

修改v1controller,添加内容

import { Controller, Get, Param, Post, Body } from '@nestjs/common';
import { HiDto } from 'src/v1/dto/hi-dto';
import { PersonService } from 'src/person/person.service';

import { Person } from '../person/person.entity';

@Controller('v1')
export class V1Controller {
    constructor(
        private readonly personService: PersonService
    ) { }
    @Get('/hello/:id')
    sayHello(@Param() params) {
        return `Hello Controller ${params.id}`;
    }

    @Post('/hi/:id')
    sayHi(@Body() hiDto: HiDto, @Param() params) {
        console.log(hiDto);
        console.log(params.id);
        return hiDto;
    }

    @Get('/person/list')
    async getPersonList(): Promise<Person[]> {
        return this.personService.findAll();
    }
}

第六步 运行

npm run start

在浏览器访问 localhost:3000/v1/person/list

注意:

需要通过HeidiSQL在MySQL中创建你要使用的数据库;

另外你会注意到,程序运行后会在数据库中自动创建person表。

猜你喜欢

转载自blog.csdn.net/DaChengXiaoShi/article/details/90071043