NestJS-backend-API'er til virksomheder · Lektion

Grundlæggende TypeORM-integration

Opsæt TypeORM med NestJS, definér entities, og udfør grundlæggende databaseoperationer med repositories.

Lektion 3 af 311 trin

Grundlæggende TypeORM-integration er en gratis NestJS-backend-API'er til virksomheder-lektion på CoddyKit. Dette er lektion 3 af 3. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i NestJS-backend-API'er til virksomheder, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. NestJS-backend-API'er til virksomheder-kurset indeholder 3 lektioner i alt.

Introduktion til TypeORM i NestJS

Velkommen til integrationen af TypeORM med NestJS! TypeORM er en Object-Relational Mapper (ORM), der hjælper dig med at arbejde med databaser ved hjælp af TypeScript eller JavaScript.

I stedet for at skrive rå SQL-forespørgsler interagerer du med din database ved hjælp af velkendte objektorienterede programmeringsbegreber som klasser og objekter.

Hvorfor bruge en ORM?

ORM'er som TypeORM har flere fordele:

  • Abstraktion: Du behøver ikke skrive kompleks SQL.
  • Typesikkerhed: Med TypeScript kontrolleres typerne i dine databaseinteraktioner.
  • Flytbarhed: Skift nemt mellem forskellige databasesystemer (PostgreSQL, MySQL, SQLite osv.).
  • Produktivitet: Hurtigere udvikling med mindre standardkode.

Opsætning af TypeORM-modulet

Først skal vi installere TypeORM og databasedriveren til den database, du har valgt (f.eks. pg til PostgreSQL eller sqlite3 til SQLite).

Derefter konfigurerer vi TypeOrmModule i dit primære applikationsmodul (normalt AppModule) for at oprette databaseforbindelsen.

Konfiguration af TypeOrmModule

Sådan kan du konfigurere TypeORM i din app.module.ts. Dette eksempel bruger SQLite for nemheds skyld, hvilket gemmer data i en fil.

Vi bruger TypeOrmModule.forRoot() til at opsætte 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 {}

Definition af din første entitet

En entitet er en klasse, der direkte knytter sig til en databasetabel. Hver instans af entitetsklassen repræsenterer en række i tabellen.

Vi bruger dekoratorer som @Entity(), @PrimaryGeneratedColumn() og @Column() til at definere tabellen og dens kolonner.

Eksempel på en User-entitet

Lad os oprette en simpel User-entitet. Den knyttes til en user-tabel i vores database.

  • @PrimaryGeneratedColumn() opretter en automatisk inkrementerende primærnøgle.
  • @Column() definerer en almindelig 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;
}

Registrering af entiteter i et modul

Efter at have defineret din entitet skal du fortælle TypeORM om den. Opdater konfigurationen af TypeOrmModule.forRoot() i dit AppModule, så den inkluderer din nye User-entitet.

Det giver TypeORM mulighed for at oprette den tilsvarende tabel i din database.

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 {}

Introduktion til repositories

TypeORM-repositories er objekter, der tilbyder metoder til at interagere med en bestemt entitets tabel i databasen.

Du injicerer et repository i din NestJS-tjeneste (f.eks. UserService) for at udføre CRUD-handlinger (opret, læs, opdater, slet).

Grundlæggende handlinger: Opret og læs

Hvis du vil bruge et repository, injicerer du det ved hjælp af @InjectRepository(). Lad os se, hvordan du opretter en ny bruger og henter alle brugere.

  • save(): Indsætter en ny post eller opdaterer 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();
  }
}

Hurtig TypeORM-test

Hvilken dekorator bruges til at markere en klasse som en entitet, der knyttes til en databasetabel i TypeORM?

Opsummering: Det grundlæggende i TypeORM

Du har lært det grundlæggende i at integrere TypeORM i din NestJS-applikation!

  • Vi konfigurerede TypeOrmModule i vores AppModule.
  • Vi definerede en entitet ved hjælp af dekoratorer som @Entity(), @PrimaryGeneratedColumn() og @Column().
  • Vi forstod, hvordan man bruger repositories til at udføre grundlæggende databasehandlinger som at oprette og læse poster.

Dernæst udforsker du mere avancerede CRUD-handlinger og teknikker til datahåndtering!

Gratis at komme i gang

Lær TypeScript med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
20
Lektioner
76

Ofte stillede spørgsmål

Er lektionen “Grundlæggende TypeORM-integration” gratis?

Ja — hele teksten til “Grundlæggende TypeORM-integration” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af NestJS-backend-API'er til virksomheder-kurset, skal du opgradere til CoddyKit PRO. NestJS-backend-API'er til virksomheder-kurset indeholder 3 lektioner i alt.

Hvad lærer jeg i “Grundlæggende TypeORM-integration”?

Opsæt TypeORM med NestJS, definér entities, og udfør grundlæggende databaseoperationer med repositories. Du øver dig i NestJS-backend-API'er til virksomheder med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på NestJS-backend-API'er til virksomheder?

Der kræves ingen tidligere erfaring. NestJS-backend-API'er til virksomheder på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 3 af 3.

Hvor lang tid tager lektionen “Grundlæggende TypeORM-integration”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne NestJS-backend-API'er til virksomheder-lektion?

Ja. Alle NestJS-backend-API'er til virksomheder-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. Dependency injection forklaret
  2. DTO'er og validation pipes
  3. Grundlæggende TypeORM-integration
← Tilbage til NestJS-backend-API'er til virksomheder