此示例使用nestjs演示了一个Cat
实体:Cat
<code class="typescript">import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm'; @Entity() export class Cat { @PrimaryGeneratedColumn() id: number; @Column() name: string; @Column() age: number; }</code>>现在,让我们创建一个
> file:cats.controller.ts
<code class="typescript">import { Controller, Get, Post, Body, Param, Delete, Put } from '@nestjs/common'; import { CreateCatDto } from './create-cat.dto'; import { Cat } from './cat.entity'; import { CatsService } from './cats.service'; @Controller('cats') export class CatsController { constructor(private readonly catsService: CatsService) {} @Post() async create(@Body() createCatDto: CreateCatDto): Promise<Cat> { return this.catsService.create(createCatDto); } @Get() async findAll(): Promise<Cat[]> { return this.catsService.findAll(); } @Get(':id') async findOne(@Param('id') id: string): Promise<Cat> { return this.catsService.findOne(+id); } @Put(':id') async update(@Param('id') id: string, @Body() updateCatDto: CreateCatDto): Promise<Cat> { return this.catsService.update(+id, updateCatDto); } @Delete(':id') async remove(@Param('id') id: string): Promise<void> { return this.catsService.remove(+id); } }</code>>
:cats.service.ts
<code class="typescript">import { Injectable } from '@nestjs/common'; import { InjectRepository } from '@nestjs/typeorm'; import { Repository } from 'typeorm'; import { Cat } from './cat.entity'; import { CreateCatDto } from './create-cat.dto'; @Injectable() export class CatsService { constructor( @InjectRepository(Cat) private catsRepository: Repository<Cat>, ) {} async create(cat: CreateCatDto): Promise<Cat> { const newCat = this.catsRepository.create(cat); return this.catsRepository.save(newCat); } async findAll(): Promise<Cat[]> { return this.catsRepository.find(); } async findOne(id: number): Promise<Cat> { return this.catsRepository.findOneBy({ id }); } async update(id: number, cat: CreateCatDto): Promise<Cat> { await this.catsRepository.update(id, cat); return this.catsRepository.findOneBy({ id }); } async remove(id: number): Promise<void> { await this.catsRepository.delete(id); } }</code>:
npm install @nestjs/typeorm typeorm
ormconfig.json
请记住要安装必要的包:
:>使用存储库(例如,typeorm): a repository a repository为数据集互动提供抽象层。 它处理特定于数据库的操作,使您的服务能够独立于基础数据库技术。 TypeOms是一个流行的选择,提供了自动架构生成和迁移等功能。 数据传输对象(DTOS):创建DTOS来验证和构造从HTTP请求中接收到的数据。这可以增强安全性并提高代码可读性。>构建具有CRUD功能的Nestjs应用程序的最佳实践是什么?
以上是Nestjs Crud操作示例的详细内容。更多信息请关注PHP中文网其他相关文章!