Arbeit mit Datenbanken in TypeScript: PostgreSQL und MongoDB für Anfänger

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Arbeit mit Datenbanken in TypeScript: PostgreSQL und MongoDB für Anfänger

\n\n

Moderne Webentwicklung kommt selten ohne Datenbanken aus. TypeScript, als streng typisierte Erweiterung von JavaScript, bietet hervorragende Möglichkeiten für sichere und vorhersagbare Arbeit mit Daten. In diesem Artikel werden wir erläutern, wie man zwei beliebte Datenbanken – die relationale PostgreSQL und die dokumentenorientierte MongoDB – in TypeScript-Projekten einbindet und nutzt. Das Material richtet sich an Anfänger-Entwickler, die mit den Grundlagen von TypeScript und Node.js vertraut sind.

\n\n

1. Umgebungsvorbereitung und Installation von Abhängigkeiten

\n\n

Stellen Sie vor Beginn sicher, dass Node.js und npm installiert sind. Für die Arbeit mit TypeScript installieren Sie den Compiler und die Typen für Node.js:

\n\n
npm install -g typescript\nnpm init -y\nnpm install typescript @types/node --save-dev\nnpx tsc --init
\n\n

Für die Arbeit mit Datenbanken verwenden wir beliebte Bibliotheken:

\n
    \n
  • TypeORM – ORM für PostgreSQL (und andere SQL-Datenbanken)
  • \n
  • Mongoose – ODM für MongoDB
  • \n
\n\n

Installieren Sie diese in Ihrem Projekt:

\n\n
npm install typeorm reflect-metadata pg\nnpm install mongoose
\n\n

Vergessen Sie nicht, "experimentalDecorators": true und "emitDecoratorMetadata": true in der Datei tsconfig.json hinzuzufügen.

\n\n

2. Arbeit mit PostgreSQL über TypeORM

\n\n

PostgreSQL ist ein leistungsstarkes relationales DBMS. TypeORM ermöglicht die Arbeit damit über Entitäten (Entities) und Repositories, was den Code sauber und typisiert macht.

\n\n

2.1. Erstellung der Verbindung und einer Entität

\n\n

Erstellen wir eine Datei data-source.ts zur Konfiguration der Verbindung:

\n\n
import { DataSource } from "typeorm";\n\nexport const AppDataSource = new DataSource({\n    type: "postgres",\n    host: "localhost",\n    port: 5432,\n    username: "your_user",\n    password: "your_password",\n    database: "your_db",\n    synchronize: true,\n    logging: false,\n    entities: ["src/entity/**/*.ts"],\n});
\n\n

Jetzt erstellen wir die Entität User in der Datei src/entity/User.ts:

\n\n
import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";\n\n@Entity()\nexport class User {\n    @PrimaryGeneratedColumn()\n    id: number;\n\n    @Column()\n    name: string;\n\n    @Column({ unique: true })\n    email: string;\n\n    @Column()\n    age: number;\n}
\n\n

2.2. CRUD-Operationen mit TypeORM

\n\n

Beispiel für das Erstellen und Abrufen von Benutzern:

\n\n
import { AppDataSource } from "./data-source";\nimport { User } from "./entity/User";\n\nasync function main() {\n    await AppDataSource.initialize();\n    const userRepository = AppDataSource.getRepository(User);\n\n    // Erstellen\n    const newUser = userRepository.create({\n        name: "Ivan",\n        email: "ivan@example.com",\n        age: 25\n    });\n    await userRepository.save(newUser);\n    console.log("Benutzer erstellt:", newUser);\n\n    // Alle lesen\n    const users = await userRepository.find();\n    console.log("Alle Benutzer:", users);\n\n    // Aktualisieren\n    await userRepository.update({ id: 1 }, { age: 26 });\n\n    // Löschen\n    await userRepository.delete({ id: 1 });\n}\n\nmain().catch(console.error);
\n\n

TypeORM generiert automatisch SQL-Abfragen, und die Typisierung von TypeScript schützt vor Fehlern während der Kompilierung.

\n\n

3. Arbeit mit MongoDB über Mongoose

\n\n

MongoDB ist eine NoSQL-Datenbank, die Daten in einem JSON-ähnlichen Format speichert. Mongoose bietet Schema und Validierung für TypeScript.

\n\n

3.1. Verbindung und Definition des Schemas

\n\n

Erstellen wir eine Datei db.ts für die Verbindung:

\n\n
import mongoose from "mongoose";\n\nexport async function connectDB() {\n    await mongoose.connect("mongodb://localhost:27017/mydb");\n    console.log("Mit MongoDB verbunden");\n}

Blogs

Buchempfehlungen