Grundlæggende TypeORM-integration
Opsæt TypeORM med NestJS, definér entities, og udfør grundlæggende databaseoperationer med repositories.
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
TypeOrmModulei voresAppModule. - 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!
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
- Dependency injection forklaret
- DTO'er og validation pipes
- Grundlæggende TypeORM-integration