I lettori come te aiutano a sostenere MUO. Quando effettui un acquisto utilizzando i link sul nostro sito, potremmo guadagnare una commissione di affiliazione. Per saperne di più.

Sequelize è un object-relational mapper (ORM) di Node.js che fornisce un'API di facile utilizzo per database relazionali come Oracle, PostgreSQL, MySQL, MariaDB, SQLite e altri.

PostgreSQL è un sistema di gestione di database relazionali open source (RDBMS) ampiamente utilizzato, rinomato per le sue funzionalità estese, l'eccellente sicurezza e la scalabilità.

PostgreSQL è compatibile con più linguaggi di programmazione, incluso JavaScript, rendendolo la scelta ideale per applicazioni web e basate sui dati. Qui imparerai a configurare un database Postgres in Node.js usando Sequelize.

Passaggio 1: installazione delle dipendenze

Prima di poter usare PostgreSQL, devi installarlo sul tuo sistema. Per scaricare PostgreSQL, vai al file Sito web di PostgreSQL e scegli il tuo sistema operativo. Se riscontri problemi durante questo processo su macOS, dai un'occhiata installare PostgreSQL su macOS.

instagram viewer

In alternativa, puoi utilizzare PostgreSQL sul cloud sfruttando piattaforme come ElephantSQL che offrono PostgreSQL come servizio.

Quindi, installa sequel eseguendo il seguente comando:

npm install sequelize

Quindi, installa il driver del database PostgreSQL eseguendo il comando seguente:

npm install pg pg-hstore

Passaggio 2: connessione a un database PostgreSQL

Nella directory dei sorgenti del tuo progetto, crea un file config cartella. Nel config cartella, creare un file db.js file. Questo file conterrà tutto il codice che collega la tua applicazione Node.js a un database PostgreSQL.

Successivamente, nel tuo db.js archiviare, importare Seguire da sequel.

cost { Seguire } = richiedere("seguire");

Successivamente, è necessario creare un file Seguire esempio. Questa istanza accetta parametri di connessione come il nome del database, il nome utente e la password come argomenti. In alternativa, accetta un singolo URI di connessione come argomento.

Per esempio:

// Parametri di connessione
cost sequel = nuovo Sequenzia('Banca dati', 'nome utente', 'parola d'ordine')

// con URI
cost sequel = nuovo Sequelizza (process.env. POSTGRESQL_DB_URI)

Inoltre, questo costruttore accetta un oggetto di configurazione come argomento facoltativo.

Quindi, verifica la tua connessione sequelize aggiungendo il codice sotto il tuo db.js file:

cost provaDbConnection = asincrono () => {
Tentativo {
aspetta sequelize.authenticate();
consolare.tronco d'albero("La connessione è stata stabilita correttamente.");
} presa (errore) {
consolare.errore("Impossibile collegarsi al database:", errore);
}
};

Il blocco di codice sopra chiama il file sequel.autenticare() metodo per verificare se la connessione è OK e stampa "La connessione è stata stabilita correttamente". consolare se lo è. Se c'è un errore di connessione, stampa "Impossibile connettersi al database:" insieme all'errore.

Infine, esporta l'istanza di sequelize e il file provaDbConnection funzione.

modulo.esporta = { mq: sequelize, testDbConnection };

Passaggio 3: creazione di un modello Sequelize

Nella directory dei sorgenti del tuo progetto, crea un file Modelli cartella. Questa cartella conterrà tutti i tuoi modelli di sequelize. Successivamente, crea un file modello. Il nome che dai al file dovrebbe fornire informazioni sulla rappresentazione del modello.

Nel file del modello, importa l'istanza di sequelize.

// esempio.js
cost {q} = richiedere("../config/db");

Successivamente, importa Tipi di dati da sequel.

cost {Tipi di dati} = richiedere("seguire");

Tipi di dati consente di impostare il tipo di dati richiesto per ciascuna proprietà sul modello.

Puoi creare un nuovo modello di sequelize che rappresenta una tabella nel tuo database chiamando il metodo definire metodo sulla tua istanza di sequelize.

IL definire Il metodo accetta due argomenti: il nome del modello e un oggetto attributi. Il nome del modello rappresenta il nome del modello. L'oggetto attributi rappresenta le colonne del database, con ogni proprietà che rappresenta una colonna.

Ecco un esempio di un modello di sequelize:

cost Utente = sq.define("utente", {
e-mail: {
tipo: tipi di dati. CORDA,
consentireNull: falso,
chiave primaria: VERO,
},

nome e cognome: {
tipo: tipi di dati. CORDA,
},

età: {
tipo: tipi di dati. NUMERO INTERO,
},

impiegato: {
tipo: tipi di dati. BOOLEANO,
valore di default: falso,
},
});

Il blocco di codice sopra definisce a Utente modello con un e-mail, nome e cognome, età, E impiegato proprietà.

IL e-mail property è un tipo di stringa che non può essere vuoto (consentireNull: falso) e funge anche da chiave primaria per il Utente tavolo (chiave primaria: vero). IL nome e cognome e il età proprietà sono una stringa (Tipi di dati. CORDA) e di tipo intero (Tipi di dati. NUMERO INTERO), rispettivamente. IL impiegato property è un tipo booleano con un valore predefinito di falso, il che significa che se non viene specificato, verrà automaticamente impostato su false nel database.

Successivamente, chiama il sincronizzazione metodo sul tuo modello. Questo metodo accetta un oggetto di configurazione come argomento. A seconda delle opzioni nell'oggetto di configurazione, il sincronizzazione metodo può:

  • Utente.sync(): Crea la tabella se non esiste e non fa nulla se esiste.
  • User.sync({ force: true }): crea la tabella e rilascia la prima se esiste già.
  • User.sync({ alter: true }): controlla lo stato corrente della tabella nel database ed esegue le modifiche necessarie nella tabella per farla corrispondere al modello.

Per esempio:

User.sync().then(() => {
consolare.tronco d'albero("Modello utente sincronizzato");
});

Il blocco di codice sopra crea la tabella del database per il file Utente modella se non esiste e non fa nulla se esiste.

Infine, esporta il tuo modello:

modulo.exports = Utente;

Interrogazione di un database PostgreSQL

Sequelize fornisce vari metodi che ti consentono di interagire con il tuo database PostgreSQL senza scrivere raw Comandi SQL.

Salvare i dati in PostgreSQL

Per salvare i dati in un database PostgreSQL, chiama il metodo creare metodo sul tuo modello e passa un oggetto che implementa il modello PostgreSQL come argomento.

Per esempio:

cost mike = Utente.create({
e-mail: "[email protected]",
nome e cognome: "Mike Smith",
età: 30,
impiegato: VERO,
});

Il blocco di codice sopra crea un file Utente istanza di Mike nel tuo database e genera automaticamente un ID univoco.

Recupero di dati da PostgreSQL

I dati possono essere recuperati in diversi modi da un database PostgreSQL utilizzando sequelize, ma dipende dalla natura dei dati che si desidera ricevere.

I metodi più comuni per recuperare i dati sono i file trova uno E trova tutto metodi. IL trova tutto restituisce tutte le istanze di dati che soddisfano una data query, while trova uno restituisce la prima istanza che soddisfa la query.

Per esempio:

// Trova tutti gli utenti
cost utenti = aspetta Utente.findAll();

Il codice precedente restituirà tutti i file Utente istanze nel database.

È possibile filtrare i dati restituiti utilizzando il file Dove dichiarazione. Questa istruzione consente di aggiungere determinate condizioni alla query. La tua query restituirà solo le istanze che soddisfano tali condizioni.

Per esempio:

Utente.findAll({
Dove: {
impiegato: falso
}
});

Il codice precedente restituirà tutti i file Utente istanze con il loro impiegato proprietà impostata su falso nella banca dati.

Aggiornamento dei dati su PostgreSQL

È possibile aggiornare i dati nel database PostgreSQL chiamando il metodo aggiornamento metodo e passando un filtro come argomento.

Per esempio:

aspetta Utente.aggiornamento({ impiegato: VERO }, {
Dove: {
impiegato: falso
}
});

Il codice sopra cambia tutto il file Utente istanze con un impiegato valore di falso A VERO.

In alternativa, puoi aggiornare i dati modificando manualmente le proprietà che desideri modificare e chiamando il file salva metodo sull'istanza.

Per esempio:

cost utenteMike = aspetta Utente.trovaUno({ Dove: { e-mail: "[email protected]" } });

Se(utenteMike !== nullo) {
utenteMike.email = "[email protected]"
aspetta utenteMike.save()
}

Il codice precedente interroga il database per un utente che ha l'e-mail "[email protected]" utilizzando l' trova uno metodo. Se l'utente viene trovato, riassegna la proprietà email a "[email protected]" e chiama il salva metodo per aggiornare il database.

Eliminazione di dati su PostgreSQL

Puoi eliminare i dati su PostgreSQL chiamando il metodo distruggere metodo e passando un filtro come argomento.

Per esempio:

aspetta Utente.destroy({
Dove: {
e-mail: "[email protected]"
}
});

Il codice precedente interroga il database per un utente con l'e-mail "[email protected]" ed elimina l'utente dal database.

Vantaggi dell'utilizzo di PostgreSQL con Sequlize

Scrivere query SQL non elaborate per interagire con un database PostgreSQL può essere una seccatura. Con Sequelize puoi facilmente definire modelli, creare associazioni tra di loro e interrogare il database con un'API semplice e intuitiva. In alternativa, puoi utilizzare altri ORM, come TypeORM, per interagire con un database PostgreSQL senza il fastidio di scrivere query SQL non elaborate.