import{Injectable}from'@nestjs/common';import{Repository,InjectRepository}from'@nestjs/azure-database';import{Cat}from'./cat.entity';@Injectable()exportclassCatService{constructor(@InjectRepository(Cat)privatereadonlycatRepository:Repository<Cat>,){}// ... other code ...
Azure 表存储Repository接口提供了一系列公共 API 和类型,用于管理各种 CRUD(Create添加、Read删除Update和更新)操作。接下来,我们将了解如何使用SDKDelete实现每种不同的操作。@nestjs/azure-database
import{Injectable}from'@nestjs/common';import{Repository,InjectRepository}from'@nestjs/azure-database';import{Cat}from'./cat.entity';@Injectable()exportclassCatService{constructor(@InjectRepository(Cat)privatereadonlycatRepository:Repository<Cat>,){}// find one cat entitu by its rowKeyasyncfind(rowKey:string,cat:Cat):Promise<Cat>{returnthis.catRepository.find(rowKey,cat);}// find all cat entitiesasyncfindAll():Promise<AzureTableStorageResultList<Cat>>{returnthis.catRepository.findAll();}// create a new cat entityasynccreate(cat:Cat):Promise<Cat>{returnthis.catRepository.create(cat);}// update the a cat entity by its rowKeyasyncupdate(rowKey:string,cat:Partial<Cat>):Promise<Cat>{returnthis.catRepository.update(rowKey,cat);}// delete a cat entity by its rowKeyasyncdelete(rowKey:string,cat:Cat):Promise<AzureTableStorageResponse>{returnthis.catRepository.delete(rowKey,cat);}}
import{Body,Controller,Delete,Get,Param,Post,Put,UnprocessableEntityException,NotFoundException,Patch}from'@nestjs/common';import{CatDto}from'./cat.dto';import{Cat}from'./cat.entity';import{CatService}from'./cat.service';@Controller('cats')exportclassCatController{constructor(privatereadonlycatService:CatService){}@Get()asyncgetAllCats(){returnawaitthis.catService.findAll();}@Get(':rowKey')asyncgetCat(@Param('rowKey')rowKey){try{returnawaitthis.catService.find(rowKey,newCat());}catch (error){// Entity not foundthrownewNotFoundException(error);}}@Post()asynccreateCat(@Body()catData:CatDto,){try{constcat=newCat();// Disclaimer: Assign only the properties you are expecting!Object.assign(cat,catData);returnawaitthis.catService.create(cat);}catch (error){thrownewUnprocessableEntityException(error);}}@Put(':rowKey')asyncsaveCat(@Param('rowKey')rowKey,@Body()catData:CatDto){try{constcat=newCat();// Disclaimer: Assign only the properties you are expecting!Object.assign(cat,catData);returnawaitthis.catService.update(rowKey,cat);}catch (error){thrownewUnprocessableEntityException(error);}}@Patch(':rowKey')asyncupdateCatDetails(@Param('rowKey')rowKey,@Body()catData:Partial<CatDto>){try{constcat=newCat();// Disclaimer: Assign only the properties you are expecting!Object.assign(cat,catData);returnawaitthis.catService.update(rowKey,cat);}catch (error){thrownewUnprocessableEntityException(error);}}@Delete(':rowKey')asyncdeleteDelete(@Param('rowKey')rowKey){try{constresponse=awaitthis.catService.delete(rowKey,newCat());if (response.statusCode===204){returnnull;}else{thrownewUnprocessableEntityException(response);}}catch (error){thrownewUnprocessableEntityException(error);}}}