美文网首页让前端飞Web前端之路
Nest.js学习之路(15)-typeorm(2)新增数据

Nest.js学习之路(15)-typeorm(2)新增数据

作者: cbw100 | 来源:发表于2019-06-22 09:05 被阅读4次

    继续在Platform Entity新增列

    import {Column, Entity, PrimaryGeneratedColumn} from "typeorm";
    
    @Entity('platform') // 指定table name
    export class Platform {
        // 每新增一个的時候id+1
        @PrimaryGeneratedColumn()
        id: number;
        // @Column为对应的数据库列,或是传入Column Options物件
        @Column()
        platformname: string;
        
        // 传入Column Options物件设定mapping的列位属性
        @Column({
            type: 'varchar',
            length: 50,
            default: '123',
        })
        title: string;
        
        @Column()    
         url: string;
    
        @Column({
            default: true, // 给预设值
        })
        isActive: boolean;
    }
    

    新建feature文件夹,在feature文件夹下新建platform文件夹,然后,新建platform.controller.ts,platform.module.ts,platform.service.ts三个文件,然后platform.service.ts写入如下代码:

    import { Injectable } from '@nestjs/common';
    import { InjectRepository } from '@nestjs/typeorm';
    import { Platform } from 'shared/entity/Platform';
    import { Repository } from 'typeorm';
    import { PlatformDTO } from 'app.controller';
    
    @Injectable()
    export class PlatformService {
        constructor(
            @InjectRepository(Platform)
            private readonly platformRepo: Repository<Platform>,
        ){}
    
        async addPlatform(data: PlatformDTO){
        const platformData = new Platform();
        platformData.platformname = data.platformname;
        platformData.url = data.url;
        platformData.title = data.title;
        return await this.platformRepo.save(platformData);
      }
    }
    

    platform.controller.ts代码如下:

    import { Controller, Post, Body } from '@nestjs/common';
    import { PlatformDTO } from 'app.controller';
    import { PlatformService } from './platform.service';
    
    @Controller('platform')
    export class PlatformController {
        constructor(private readonly platformService: PlatformService) {}
        @Post()
        create(@Body() platformDTO: PlatformDTO){
                // throw new HttpException('糟糕!您的要求有问题,请联系管理员', HttpStatus.BAD_REQUEST);
                return this.platformService.addPlatform(platformDTO);
        }
    }
    

    platform.module.ts代码如下:

    import { Module } from '@nestjs/common';
    import { PlatformService } from './platform.service';
    import { TypeOrmModule } from '@nestjs/typeorm';
    import { Platform } from 'shared/entity/Platform';
    import { PlatformController } from './platform.controller';
    
    @Module({
      imports: [TypeOrmModule.forFeature([Platform])],
      providers: [PlatformService],
      controllers: [PlatformController],
    })
    export class PlatformModule {}
    

    然后用postman模拟post请求如下:

    2018111301.png

    mysql管理工具可以看到成功插入的数据


    2018111302.png

    推荐一下我的公众号: 【 geekjc 】,微信号: 【 c8706288 】一起学习交流编程知识,分享经验,各种有趣的事。

    tuiguang.png

    相关文章

      网友评论

        本文标题:Nest.js学习之路(15)-typeorm(2)新增数据

        本文链接:https://www.haomeiwen.com/subject/ilfcfqtx.html