Leser wie Sie helfen, MUO zu unterstützen. Wenn Sie über Links auf unserer Website einen Kauf tätigen, erhalten wir möglicherweise eine Affiliate-Provision. Weiterlesen.

Sequelize ist ein objektrelationaler Mapper (ORM) von Node.js, der eine benutzerfreundliche API für relationale Datenbanken wie Oracle, PostgreSQL, MySQL, MariaDB, SQLite und mehr bietet.

PostgreSQL ist ein weit verbreitetes Open-Source-Managementsystem für relationale Datenbanken (RDBMS), das für seine umfangreichen Funktionen, hervorragende Sicherheit und Skalierbarkeit bekannt ist.

PostgreSQL ist mit mehreren Programmiersprachen kompatibel, einschließlich JavaScript, was es zur idealen Wahl für Web- und datengesteuerte Anwendungen macht. Hier erfahren Sie, wie Sie mit Sequelize eine Postgres-Datenbank in Node.js einrichten.

Schritt 1: Installieren von Abhängigkeiten

Bevor Sie PostgreSQL verwenden können, müssen Sie es auf Ihrem System installieren. Um PostgreSQL herunterzuladen, navigieren Sie zu der PostgreSQL-Website und wählen Sie Ihr Betriebssystem aus. Wenn Sie während dieses Vorgangs unter macOS auf Probleme stoßen, lesen Sie weiter

instagram viewer
Installation von PostgreSQL unter macOS.

Alternativ können Sie PostgreSQL in der Cloud verwenden, indem Sie Plattformen wie z ElephantSQL die PostgreSQL als Dienst anbieten.

Als nächstes installieren fortführen indem Sie den folgenden Befehl ausführen:

npm install sequelize

Installieren Sie dann den PostgreSQL-Datenbanktreiber, indem Sie den folgenden Befehl ausführen:

npm installiert pg pg-hstore

Schritt 2: Verbindung zu einer PostgreSQL-Datenbank herstellen

Erstellen Sie im Quellverzeichnis Ihres Projekts eine Konfig Ordner. Im Konfig Ordner, erstellen Sie eine db.js Datei. Diese Datei enthält den gesamten Code, der Ihre Node.js-Anwendung mit einer PostgreSQL-Datenbank verbindet.

Als nächstes in Ihrem db.js Datei, importieren Sequelisieren aus fortführen.

konst {Sequelisieren} = erfordern("folgen");

Als nächstes müssen Sie eine erstellen Sequelisieren Beispiel. Diese Instanz akzeptiert Verbindungsparameter wie den Datenbanknamen, den Benutzernamen und das Kennwort als Argumente. Alternativ wird ein einzelner Verbindungs-URI als Argument verwendet.

Zum Beispiel:

// Verbindungsparameter
konst Fortsetzung = neu sequenzieren ('Datenbank', 'Nutzername', 'Passwort')

// mit URI
konst Fortsetzung = neu Sequenzieren (process.env. POSTGRESQL_DB_URI)

Außerdem akzeptiert dieser Konstruktor ein Konfigurationsobjekt als optionales Argument.

Testen Sie als Nächstes Ihre Sequelize-Verbindung, indem Sie den Code unter Ihrem hinzufügen db.js Datei:

konst testDbConnection = asynchron () => {
versuchen {
erwarten sequelize.authenticate();
Konsole.Protokoll("Verbindung wurde erfolgreich hergestellt.");
} fangen (Fehler) {
Konsole.Fehler("Die Datenbank ist nicht erreichbar:", Fehler);
}
};

Der obige Codeblock ruft die auf fortführen.authentifizieren() Methode, um zu testen, ob die Verbindung in Ordnung ist, und druckt "Verbindung wurde erfolgreich hergestellt." zu trösten, wenn es so ist. Wenn ein Verbindungsfehler auftritt, wird zusammen mit dem Fehler „Verbindung zur Datenbank nicht möglich:“ ausgegeben.

Exportieren Sie abschließend die Sequelize-Instanz und die testDbConnection Funktion.

Modul.exporte = { sq: Fortsetzung, testDbConnection };

Schritt 3: Erstellen eines Sequenzierungsmodells

Erstellen Sie im Quellverzeichnis Ihres Projekts eine Modelle Ordner. Dieser Ordner enthält alle Ihre Sequelize-Modelle. Erstellen Sie als Nächstes eine Modelldatei. Der Name, den Sie der Datei geben, sollte Aufschluss über die Darstellung des Modells geben.

Importieren Sie in Ihrer Modelldatei die sequelize-Instanz.

// Beispiel.js
konst {Quadrat} = erfordern("../config/db");

Als nächstes importieren Datentypen aus fortführen.

konst { Datentypen } = erfordern("folgen");

Datentypen können Sie den erforderlichen Datentyp für jede Eigenschaft in Ihrem Modell festlegen.

Sie können ein neues Folgemodell erstellen, das eine Tabelle in Ihrer Datenbank darstellt, indem Sie die aufrufen definieren -Methode auf Ihrer Sequelize-Instanz.

Der definieren -Methode akzeptiert zwei Argumente: Den Modellnamen und ein Attributobjekt. Der Modellname repräsentiert den Namen des Modells. Das Attribute-Objekt stellt die Spalten der Datenbank dar, wobei jede Eigenschaft eine Spalte darstellt.

Hier ist ein Beispiel für ein Folgemodell:

konst Benutzer = sq.define ("Benutzer", {
Email: {
Typ: Datentypen. STRING,
allowNull: FALSCH,
Primärschlüssel: WAHR,
},

vollständiger Name: {
Typ: Datentypen. STRING,
},

Alter: {
Typ: Datentypen. GANZE ZAHL,
},

beschäftigt: {
Typ: Datentypen. BOOLEAN,
Standardwert: FALSCH,
},
});

Der obige Codeblock definiert a Benutzer Modell mit einem Email, vollständiger Name, Alter, Und beschäftigt Eigenschaften.

Der Email Eigenschaft ist ein Zeichenfolgentyp, der nicht leer sein darf (allowNull: falsch) und fungiert auch als Primärschlüssel für die Benutzer Tisch (Primärschlüssel: wahr). Der vollständiger Name und das Alter Eigenschaft sind eine Zeichenfolge (Datentypen. STRING) und Integer-Typ (Datentypen. GANZE ZAHL), bzw. Der beschäftigt Eigenschaft ist ein boolescher Typ mit einem Standardwert von FALSCH, was bedeutet, dass es in der Datenbank automatisch auf „false“ gesetzt wird, wenn es nicht angegeben ist.

Als nächstes rufen Sie an synchronisieren Methode an Ihrem Modell. Diese Methode akzeptiert ein Konfigurationsobjekt als Argument. Abhängig von den Optionen im Konfigurationsobjekt wird die synchronisieren Methode kann:

  • Benutzer.sync(): Erstellt die Tabelle, wenn sie nicht existiert, und tut nichts, wenn sie existiert.
  • User.sync({ force: true }): Erstellen Sie die Tabelle und löschen Sie die erste, falls sie bereits vorhanden ist.
  • User.sync ({ ändern: wahr }): Überprüfen Sie den aktuellen Status der Tabelle in der Datenbank und führen Sie die erforderlichen Änderungen in der Tabelle durch, damit sie mit dem Modell übereinstimmt.

Zum Beispiel:

Benutzer.sync().then(() => {
Konsole.Protokoll(„Benutzermodell synchronisiert“);
});

Der obige Codeblock erstellt die Datenbanktabelle für die Benutzer Modell, wenn es nicht existiert, und tut nichts, wenn es existiert.

Exportieren Sie schließlich Ihr Modell:

Modul.exports = Benutzer;

Abfragen einer PostgreSQL-Datenbank

Sequelize bietet verschiedene Methoden, mit denen Sie mit Ihrer PostgreSQL-Datenbank interagieren können, ohne Rohdaten zu schreiben SQL-Befehle.

Speichern von Daten in PostgreSQL

Um Daten in einer PostgreSQL-Datenbank zu speichern, rufen Sie die erstellen -Methode für Ihr Modell und übergeben Sie ein Objekt, das das PostgreSQL-Modell als Argument implementiert.

Zum Beispiel:

konst mike = User.create({
Email: "[email protected]",
vollständiger Name: „Mike Schmidt“,
Alter: 30,
beschäftigt: WAHR,
});

Der obige Codeblock erstellt a Benutzer Instanz von Mike in Ihrer Datenbank und generiert automatisch eine eindeutige ID.

Abrufen von Daten aus PostgreSQL

Daten können mit sequelize auf verschiedene Arten aus einer PostgreSQL-Datenbank abgerufen werden, dies hängt jedoch von der Art der Daten ab, die Sie erhalten möchten.

Die gebräuchlichsten Methoden zum Abrufen von Daten sind die einen finden Und finde alle Methoden. Der finde alle gibt alle Dateninstanzen zurück, die eine bestimmte Abfrage erfüllen, während einen finden gibt die erste Instanz zurück, die die Abfrage erfüllt.

Zum Beispiel:

// Alle Benutzer finden
konst Benutzer = erwarten User.findAll();

Der obige Code gibt alle zurück Benutzer Instanzen in der Datenbank.

Sie können die zurückgegebenen Daten mithilfe von filtern Wo Stellungnahme. Mit dieser Anweisung können Sie der Abfrage bestimmte Bedingungen hinzufügen. Ihre Abfrage gibt nur Instanzen zurück, die diese Bedingungen erfüllen.

Zum Beispiel:

User.findAll({
Wo: {
beschäftigt: FALSCH
}
});

Der obige Code gibt alle zurück Benutzer Instanzen mit ihren beschäftigt Eigenschaft gesetzt auf FALSCH in der Datenbank.

Aktualisieren von Daten auf PostgreSQL

Sie können Daten in der PostgreSQL-Datenbank aktualisieren, indem Sie die aufrufen aktualisieren -Methode und Übergeben eines Filters als Argument.

Zum Beispiel:

erwarten Benutzer.update({ beschäftigt: WAHR }, {
Wo: {
beschäftigt: FALSCH
}
});

Der obige Code ändert alle Benutzer Fälle mit einem beschäftigt Wert von FALSCH Zu WAHR.

Alternativ können Sie Daten aktualisieren, indem Sie die zu ändernden Eigenschaften manuell ändern und die aufrufen speichern Methode auf der Instanz.

Zum Beispiel:

konst userMike = erwarten User.findOne({ Wo: { Email: "[email protected]" } });

Wenn(userMike !== Null) {
userMike.email = "[email protected]"
erwarten userMike.save()
}

Der obige Code fragt die Datenbank nach einem Benutzer ab, der die E-Mail-Adresse „[email protected]“ hat einen finden Methode. Wenn der Benutzer gefunden wird, weist es die E-Mail-Eigenschaft „[email protected]“ neu zu und ruft die auf speichern Methode zum Aktualisieren der Datenbank.

Löschen von Daten auf PostgreSQL

Sie können Daten auf PostgreSQL löschen, indem Sie die aufrufen zerstören -Methode und Übergeben eines Filters als Argument.

Zum Beispiel:

erwarten User.destroy({
Wo: {
Email: "[email protected]"
}
});

Der obige Code fragt die Datenbank nach einem Benutzer mit der E-Mail „[email protected]“ ab und löscht den Benutzer aus der Datenbank.

Vorteile der Verwendung von PostgreSQL mit Sequlize

Das Schreiben von rohen SQL-Abfragen für die Interaktion mit einer PostgreSQL-Datenbank kann mühsam sein. Mit Sequelize können Sie ganz einfach Modelle definieren, Verknüpfungen zwischen ihnen erstellen und die Datenbank mit einer einfachen und intuitiven API abfragen. Alternativ können Sie andere ORMs wie TypeORM verwenden, um mit einer PostgreSQL-Datenbank zu interagieren, ohne mühsam rohe SQL-Abfragen schreiben zu müssen.