Heim > Web-Frontend > js-Tutorial > Beispiel für Nestjs Crud Operations

Beispiel für Nestjs Crud Operations

Emily Anne Brown
Freigeben: 2025-03-07 18:43:15
Original
484 Leute haben es durchsucht

nestjs crud operations Beispiel

Dieses Beispiel zeigt eine grundlegende CRUD -Operation (erstellen, lesen, aktualisieren, löschen) für eine Cat -Entität unter Verwendung von NestJs. Wir werden Typorm für die Datenbankinteraktion verwenden. Angenommen, Sie haben eine Cat -Entität wie folgt definiert:

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

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

  @Column()
  name: string;

  @Column()
  age: number;
}
Nach dem Login kopieren

Erstellen Sie nun eine cats.controller.ts -Datei:

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);
  }
}
Nach dem Login kopieren

und eine entsprechende cats.service.ts:

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);
  }
}
Nach dem Login kopieren

Denken Sie daran, die erforderlichen Pakete zu installieren: npm install @nestjs/typeorm typeorm und konfigurieren Sie Ihre Datenbankverbindung in Ihrem ormconfig.json in Ihrem

. Dies liefert ein vollständiges, wenn auch grundlegendes CRUD -Beispiel. @PrimaryGeneratedColumn, @Column usw.). Dies definiert die Struktur Ihrer Daten in der Datenbank. Es verwendet ein Repository (typischerweise von Typorm bereitgestellt), um Datenbankvorgänge auszuführen. Der Dienst enthält die Datenzugriffslogik, sodass der Controller sauber und auf Anfrage zur Handhabung konzentriert bleibt. Nestjs Decorators (@Controller, @get, @Post, @put, @Delete, @body, @param) werden verwendet, um HTTP -Anforderungen an Controller -Methoden zuzuordnen. Es übernimmt datenbankspezifische Vorgänge, sodass Ihr Dienst unabhängig von der zugrunde liegenden Datenbanktechnologie bleibt. Typorm ist eine beliebte Wahl, die Funktionen wie automatische Schema -Generierung und -Migrationen bietet. Dies verbessert die Sicherheit und verbessert die Code -Lesbarkeit.
  • Modulares Design: organisieren Sie Ihren Code in Modulen basierend auf der Funktionalität (z. B. Benutzermodul, Produktmodul). Dies verbessert die Codeorganisation und die Wiederverwendbarkeit. Dies verbessert die Sicherheits- und Datenkonsistenz. Codes. NestJs? Verhalten. Gehen Sie immer potenzielle Ausnahmen ab und geben Sie aussagekräftige Fehlermeldungen zurück. Komplexe Geschäftslogik sollte sich in Diensten befinden. Verwenden Sie immer eine Dienst- und Repository -Ebene. Große, komplexe Controller sind schwer zu pflegen und zu testen. Schreiben Sie Unit -Tests für Dienste und Integrationstests für Controller und Repositories. Rufen Sie nicht den gesamten Datensatz für jede Anfrage ab.

Das obige ist der detaillierte Inhalt vonBeispiel für Nestjs Crud Operations. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage