NestJS-API-er for virksomhetsbackend · leksjon

Grunnleggende TypeORM-integrering

Sett opp TypeORM med NestJS, definer entiteter og utfør grunnleggende databaseoperasjoner ved hjelp av repositories.

Leksjon 3 av 311 trinn

Grunnleggende TypeORM-integrering er en gratis leksjon i NestJS-API-er for virksomhetsbackend på CoddyKit. Dette er leksjon 3 av 3. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i NestJS-API-er for virksomhetsbackend, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i NestJS-API-er for virksomhetsbackend inneholder totalt 3 leksjoner.

Introduksjon til TypeORM i NestJS

Velkommen til integrering av TypeORM med NestJS! TypeORM er en Object-Relational Mapper (ORM) som hjelper deg med å arbeide med databaser ved hjelp av TypeScript eller JavaScript.

I stedet for å skrive rå SQL-spørringer samhandler du med databasen ved hjelp av kjente objektorienterte programmeringskonsepter som klasser og objekter.

Hvorfor bruke en ORM?

ORM-er som TypeORM har flere fordeler:

  • Abstraksjon: Du trenger ikke å skrive kompleks SQL.
  • Typesikkerhet: Med TypeScript blir databasesamhandlingene typesjekket.
  • Portabilitet: Du kan enkelt bytte mellom ulike databasesystemer (PostgreSQL, MySQL, SQLite og så videre).
  • Produktivitet: Raskere utvikling med mindre standardkode.

Sette opp TypeORM-modulen

Først må vi installere TypeORM og databasedriveren for databasen du har valgt (for eksempel pg for PostgreSQL eller sqlite3 for SQLite).

Deretter konfigurerer vi TypeOrmModule i hovedmodulen for applikasjonen (vanligvis AppModule) for å opprette databaseforbindelsen.

Konfigurere TypeOrmModule

Slik kan du konfigurere TypeORM i app.module.ts. Dette eksempelet bruker SQLite for enkelhets skyld, som lagrer data i en fil.

Vi bruker TypeOrmModule.forRoot() til å sette opp forbindelsen globalt.

import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';

@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'sqlite',
      database: 'db.sqlite',
      entities: [], // We'll add our entities here soon!
      synchronize: true, // Auto-create tables (dev only!)
    }),
  ],
  controllers: [],
  providers: [],
})
export class AppModule {}

Definere den første entiteten

En Entity er en klasse som tilordnes direkte til en databasetabell. Hver instans av entitetsklassen representerer en rad i tabellen.

Vi bruker dekoratorer som @Entity(), @PrimaryGeneratedColumn() og @Column() til å definere tabellen og kolonnene i den.

Eksempel på User-entitet

La oss opprette en enkel User-entitet. Den vil tilordnes til en user-tabell i databasen vår.

  • @PrimaryGeneratedColumn() oppretter en automatisk inkrementert primærnøkkel.
  • @Column() definerer en vanlig kolonne.
import { Entity, PrimaryGeneratedColumn, Column } from 'typeorm';

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

  @Column()
  firstName: string;

  @Column()
  lastName: string;

  @Column({ default: true })
  isActive: boolean;
}

Registrere entiteter i en modul

Etter at du har definert entiteten, må du fortelle TypeORM om den. Oppdater konfigurasjonen for TypeOrmModule.forRoot() i AppModule slik at den inkluderer den nye User-entiteten.

Dette gjør det mulig for TypeORM å opprette den tilsvarende tabellen i databasen.

import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { User } from './user.entity'; // Import your entity

@Module({
  imports: [
    TypeOrmModule.forRoot({
      type: 'sqlite',
      database: 'db.sqlite',
      entities: [User], // Register your User entity here
      synchronize: true,
    }),
  ],
  controllers: [],
  providers: [],
})
export class AppModule {}

Introduksjon til repositories

Repositories i TypeORM er objekter som tilbyr metoder for å samhandle med tabellen til en bestemt entitet i databasen.

Du injiserer et repository i NestJS-tjenesten din (for eksempel UserService) for å utføre CRUD-operasjoner (Create, Read, Update, Delete).

Grunnleggende operasjoner: Create og Read

For å bruke et repository injiserer du det ved hjelp av @InjectRepository(). La oss se hvordan du oppretter en ny bruker og henter alle brukere.

  • save(): Setter inn en ny post eller oppdaterer en eksisterende.
  • find(): Henter alle poster for entiteten.
import { Injectable } from '@nestjs/common';
import { InjectRepository } from '@nestjs/typeorm';
import { Repository } from 'typeorm';
import { User } from './user.entity';

@Injectable()
export class UserService {
  constructor(
    @InjectRepository(User)
    private usersRepository: Repository<User>,
  ) {}

  async createUser(): Promise<User> {
    const newUser = this.usersRepository.create({
      firstName: 'Coddy',
      lastName: 'Kit',
      isActive: true,
    });
    return this.usersRepository.save(newUser);
  }

  async findAll(): Promise<User[]> {
    return this.usersRepository.find();
  }
}

Rask sjekk av TypeORM

Hvilken dekorator brukes til å markere en klasse som en entitet som tilordnes til en databasetabell i TypeORM?

Oppsummering: Grunnleggende TypeORM

Du har lært det grunnleggende om å integrere TypeORM i NestJS-applikasjonen din!

  • Vi konfigurerte TypeOrmModule i AppModule.
  • Vi definerte en Entity ved hjelp av dekoratorer som @Entity(), @PrimaryGeneratedColumn() og @Column().
  • Vi forsto hvordan Repositories brukes til grunnleggende databaseoperasjoner, som å opprette og lese poster.

Deretter skal du utforske mer avanserte CRUD-operasjoner og teknikker for datahåndtering!

Gratis å komme i gang

Lær deg TypeScript med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
20
Leksjoner
76

Ofte stilte spørsmål

Er leksjonen «Grunnleggende TypeORM-integrering» gratis?

Ja – hele teksten i «Grunnleggende TypeORM-integrering» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av NestJS-API-er for virksomhetsbackend-kurset, kan du oppgradere til CoddyKit PRO. Kurset i NestJS-API-er for virksomhetsbackend inneholder totalt 3 leksjoner.

Hva lærer jeg i «Grunnleggende TypeORM-integrering»?

Sett opp TypeORM med NestJS, definer entiteter og utfør grunnleggende databaseoperasjoner ved hjelp av repositories. Du øver på NestJS-API-er for virksomhetsbackend med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med NestJS-API-er for virksomhetsbackend?

Ingen tidligere erfaring er nødvendig. NestJS-API-er for virksomhetsbackend på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 3.

Hvor lang tid tar leksjonen «Grunnleggende TypeORM-integrering»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne NestJS-API-er for virksomhetsbackend-leksjonen?

Ja. Alle NestJS-API-er for virksomhetsbackend-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Avhengighetsinjeksjon forklart
  2. DTO-er og valideringsrør
  3. Grunnleggende TypeORM-integrering
← Tilbake til NestJS-API-er for virksomhetsbackend