nest初体验

写一个接口需要的四个文件

controller定义接口

​
import { UserService} from './user.service';
import {
    Body,
    Controller,
    Post,
    Req,
} from '@nestjs/common';
import { FileInterceptor } from '@nestjs/platform-express';
import {ApiOperation} from '@nestjs/swagger';
import * as UserDOT from './user.dto';


@ApiTags('用户系列接口:/api/user')
@Controller('user')
export class UserController {
    constructor(private readonly userService: UserService) { }

    /*
    * 新增测试数据
    */
    @ApiOperation({ summary: '删除测试数据' })
    @Post('addTestData')
    async addTestData(@Body() post: UserDOT.AddTestData, @Req() req) {
        return this.userService.AddTestData(post, req);
    }
}

​

entity定义事务(认为时操作数据的字段)

import { Entity, PrimaryGeneratedColumn, Column} from 'typeorm'
@Entity({ name: 'test' })
export class UserEntity{
    @PrimaryGeneratedColumn()
    id: number;

    @Column()
    code: string

    @Column({ name: 'create_time' })
    createTime: Date

    @Column({ name: 'update_time' })
    updateTime: Date

    @Column({ name: 'create_by' })
    createBy: string


    @Column({ name: 'update_by' })
    updateBy: string

}

dto定义需要传参数


export class AddTestData {
    @ApiProperty({ description: '单号' })
    @IsNotEmpty({ message: '缺少单号' })
    readonly code
}

service定义方法

import { HttpException, Injectable } from '@nestjs/common';
import { InjectRepository, InjectEntityManager } from '@nestjs/typeorm';
import { Any, Like, Repository, EntityManager } from 'typeorm';

@Injectable()
export class UserService {
    constructor(
        @InjectRepository(UserEntity)
        private readonly userRepository: Repository<UserEntity>,
        private redisCacheService: RedisCacheService,
        @InjectRepository(UserTokenEntity)
        private readonly UserTokenRepository: Repository<UserTokenEntity>,
        @InjectEntityManager()
        private readonly entityManager: EntityManager,
    ) { }

    async GetTestData(query) {
        let { page, pageSize } = query
        let list = await this.entityManager.query(
            `
            SELECT 
            u.id,
            u.code,
            u.purchase_plan_code purchasePlanCode,
            u.yc_code ycCode,
            u.supplier_code supplierCode,
            u.warehouse,
            u.sku_num skuNum,
            u.update_time updateTime,
            u.create_time createTime,
            u.update_by updateBy,
            u.create_by createBy,
		    s.name,
            m.name trackBy
            FROM srm_purchase u
			LEFT JOIN srm_supplier s ON s.code=u.supplier_code
            LEFT JOIN srm_merchandiser m ON m.user_id=u.track_user_id
			LIMIT ${page - 1}, ${pageSize};
            `
        )
        let count = await this.entityManager.query(
            `
            SELECT COUNT(*) AS count FROM test
            `
        )
        return {
            list,
            count: count[0].count
        }
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值