Grunnleggende TypeORM-integrering
Sett opp TypeORM med NestJS, definer entiteter og utfør grunnleggende databaseoperasjoner ved hjelp av repositories.
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
TypeOrmModuleiAppModule. - 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!
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
- Avhengighetsinjeksjon forklart
- DTO-er og valideringsrør
- Grunnleggende TypeORM-integrering