Lezers zoals jij steunen MUO. Wanneer u een aankoop doet via links op onze site, kunnen we een aangesloten commissie verdienen. Lees verder.

Sequelize is een object-relationele mapper (ORM) van Node.js die een gebruiksvriendelijke API biedt voor relationele databases zoals Oracle, PostgreSQL, MySQL, MariaDB, SQLite en meer.

PostgreSQL is een veelgebruikt open-source relationeel databasebeheersysteem (RDBMS) dat bekend staat om zijn uitgebreide functies, uitstekende beveiliging en schaalbaarheid.

PostgreSQL is compatibel met meerdere programmeertalen, waaronder JavaScript, waardoor het een ideale keuze is voor web- en datagestuurde toepassingen. Hier leer je een Postgres-database in Node.js op te zetten met behulp van Sequelize.

Stap 1: afhankelijkheden installeren

Voordat u PostgreSQL kunt gebruiken, moet u het op uw systeem installeren. Om PostgreSQL te downloaden, navigeert u naar de PostgreSQL-website en kies uw besturingssysteem. Als je tijdens dit proces op macOS problemen tegenkomt, ga dan naar PostgreSQL installeren op macOS.

Als alternatief kunt u PostgreSQL in de cloud gebruiken door gebruik te maken van platforms zoals OlifantenSQL die PostgreSQL als een dienst aanbieden.

Installeer vervolgens vervolgen door het volgende commando uit te voeren:

npm install vervolg

Installeer vervolgens het PostgreSQL-databasestuurprogramma door de onderstaande opdracht uit te voeren:

npm installeer pg pg-hstore

Stap 2: verbinding maken met een PostgreSQL-database

Maak in de bronmap van uw project een configuratie map. In de configuratie map, maak een db.js bestand. Dit bestand bevat alle code die uw Node.js-toepassing verbindt met een PostgreSQL-database.

Vervolgens in uw db.js bestand, importeren Vervolg van vervolgen.

const { Vervolg } = vereisen("volgen");

Vervolgens moet u een Vervolg voorbeeld. Deze instantie neemt verbindingsparameters zoals de databasenaam, gebruikersnaam en wachtwoord als argumenten. Als alternatief is een enkele verbindings-URI nodig als argument.

Bijvoorbeeld:

// Verbindingsparameters
const vervolgen = nieuw vervolg('databank', 'gebruikersnaam', 'wachtwoord')

// met URI
const vervolgen = nieuw Vervolg (proces.env. POSTGRESQL_DB_URI)

Bovendien neemt deze constructor een configuratieobject als optioneel argument.

Test vervolgens uw sequelize-verbinding door de code onder uw toe te voegen db.js bestand:

const testDbVerbinding = asynchroon () => {
poging {
wachten sequelize.authenticate();
troosten.log("Verbinding is succesvol tot stand gebracht.");
} vangst (fout) {
troosten.fout("Kan geen verbinding maken met de database:", fout);
}
};

Het bovenstaande codeblok roept de vervolgen.verifiëren() methode om te testen of de verbinding in orde is en drukt af "Verbinding is tot stand gebracht". om te troosten als dat zo is. Als er een verbindingsfout is, wordt "Kan geen verbinding maken met de database:" samen met de fout afgedrukt.

Exporteer ten slotte de sequelize-instantie en het testDbVerbinding functie.

moduul.export = { : vervolg, testDbConnection};

Stap 3: Een Sequelize-model maken

Maak in de bronmap van uw project een modellen map. Deze map bevat al uw vervolgmodellen. Maak vervolgens een modelbestand aan. De naam die u aan het bestand geeft, moet informatie geven over de weergave van het model.

Importeer de sequelize-instantie in uw modelbestand.

// voorbeeld.js
const { vierkante } = vereisen("../config/db");

Importeer vervolgens Gegevenstypen van vervolgen.

const { DataTypes } = vereisen("volgen");

Gegevenstypen laat u het vereiste gegevenstype instellen voor elke eigenschap van uw model.

U kunt een nieuw vervolgmodel maken dat een tabel in uw database vertegenwoordigt door de definiëren methode op uw sequelize-instantie.

De definiëren methode heeft twee argumenten nodig: de modelnaam en een attributen-object. De modelnaam vertegenwoordigt de naam van het model. Het attributen-object vertegenwoordigt de kolommen van de database, waarbij elke eigenschap een kolom vertegenwoordigt.

Hier is een voorbeeld van een vervolgmodel:

const Gebruiker = sq.define("gebruiker", {
e-mail: {
type: gegevenstypen. SNAAR,
allowNull: vals,
hoofdsleutel: WAAR,
},

voor-en achternaam: {
type: gegevenstypen. SNAAR,
},

leeftijd: {
type: gegevenstypen. GEHEEL GETAL,
},

in dienst: {
type: gegevenstypen. BOOLEAN,
standaardwaarde: vals,
},
});

Het bovenstaande codeblok definieert a Gebruiker model met een e-mailen, voor-en achternaam, leeftijd, En in dienst eigenschappen.

De e-mailen eigenschap is een tekenreekstype dat niet leeg kan zijn (allowNull: onwaar) en fungeert ook als de primaire sleutel voor de Gebruiker tafel (primaire Sleutel: waar). De voor-en achternaam en de leeftijd eigenschap zijn een tekenreeks (Gegevenstypen. SNAAR) en geheel getal (Gegevenstypen. GEHEEL GETAL), respectievelijk. De in dienst eigenschap is een booleaans type met een standaardwaarde van vals, wat betekent dat als het niet is opgegeven, het automatisch wordt ingesteld op false in de database.

Bel vervolgens de synchroniseren methode op uw model. Deze methode neemt een configuratieobject als argument. Afhankelijk van de opties in het configuratieobject, kan het synchroniseren methode kan:

  • Gebruiker.sync(): Maak de tabel als deze niet bestaat en doet niets als deze bestaat.
  • Gebruiker.sync({ force: true }): Maak de tabel en laat de eerste vallen als deze al bestaat.
  • Gebruiker.sync({ alter: true }): Controleer de huidige status van de tabel in de database en voer de nodige wijzigingen in de tabel uit om deze overeen te laten komen met het model.

Bijvoorbeeld:

Gebruiker.sync().then(() => {
troosten.log("Gebruikersmodel gesynchroniseerd");
});

Het bovenstaande codeblok maakt de databasetabel voor het Gebruiker model als het niet bestaat en doet niets als het bestaat.

Exporteer ten slotte uw model:

moduul.exports = Gebruiker;

Een PostgreSQL-database opvragen

Sequelize biedt verschillende methoden waarmee u kunt communiceren met uw PostgreSQL-database zonder raw te schrijven SQL-opdrachten.

Gegevens opslaan in PostgreSQL

Om gegevens op te slaan in een PostgreSQL-database, roept u de creëren methode op uw model en geef een object door dat het PostgreSQL-model als argument implementeert.

Bijvoorbeeld:

const mike = Gebruiker.creëer({
e-mail: "[email protected]",
voor-en achternaam: "Mike Smit",
leeftijd: 30,
in dienst: WAAR,
});

Het bovenstaande codeblok maakt een Gebruiker voorbeeld van Mike in uw database en genereert automatisch een unieke id.

Gegevens ophalen uit PostgreSQL

Gegevens kunnen op verschillende manieren worden opgehaald uit een PostgreSQL-database met behulp van sequelize, maar dit hangt af van de aard van de gegevens die u wilt ontvangen.

De meest gebruikelijke methoden om gegevens op te halen zijn de vind een En vind alle methoden. De vind alle retourneert alle gegevensinstanties die aan een bepaalde query voldoen, terwijl vind een retourneert de eerste instantie die aan de query voldoet.

Bijvoorbeeld:

// Vind alle gebruikers
const gebruikers = wachten Gebruiker.findAll();

De bovenstaande code retourneert alle Gebruiker exemplaren in de database.

U kunt door de geretourneerde gegevens filteren met behulp van de waar stelling. Met deze verklaring kunt u bepaalde voorwaarden aan de query toevoegen. Uw query retourneert alleen instanties die aan deze voorwaarden voldoen.

Bijvoorbeeld:

Gebruiker.findAll({
waar: {
in dienst: vals
}
});

De bovenstaande code retourneert alle Gebruiker exemplaren met hun in dienst eigenschap ingesteld op vals in de databank.

Gegevens bijwerken op PostgreSQL

U kunt gegevens in de PostgreSQL-database bijwerken door de update methode en een filter doorgeven als argument.

Bijvoorbeeld:

wachten Gebruiker.update({ in dienst: WAAR }, {
waar: {
in dienst: vals
}
});

De bovenstaande code verandert alle Gebruiker gevallen met een in dienst waarde van vals naar WAAR.

U kunt ook gegevens bijwerken door de eigenschappen die u wilt wijzigen handmatig te wijzigen en de redden methode op de instantie.

Bijvoorbeeld:

const gebruikerMike = wachten Gebruiker.findOne({ waar: { e-mailen: "[email protected]" } });

als(gebruikerMike!== nul) {
userMike.email = "[email protected]"
wachten gebruikerMike.save()
}

De bovenstaande code doorzoekt de database voor een gebruiker met het e-mailadres "[email protected]" met behulp van de vind een methode. Als de gebruiker wordt gevonden, wijst het de e-maileigenschap opnieuw toe aan "[email protected]" en belt het redden methode om de database bij te werken.

Gegevens verwijderen op PostgreSQL

U kunt gegevens op PostgreSQL verwijderen door de vernietigen methode en een filter doorgeven als argument.

Bijvoorbeeld:

wachten Gebruiker.vernietigen({
waar: {
e-mail: "[email protected]"
}
});

De bovenstaande code zoekt in de database naar een gebruiker met het e-mailadres "[email protected]" en verwijdert de gebruiker uit de database.

Voordelen van het gebruik van PostgreSQL met Sequlize

Het schrijven van onbewerkte SQL-query's om te communiceren met een PostgreSQL-database kan een gedoe zijn. Met Sequelize kunt u eenvoudig modellen definiëren, er koppelingen tussen maken en de database doorzoeken met een eenvoudige en intuïtieve API. U kunt ook andere ORM's, zoals TypeORM, gebruiken om te communiceren met een PostgreSQL-database zonder het gedoe van het schrijven van onbewerkte SQL-query's.