Αναγνώστες σαν εσάς βοηθούν στην υποστήριξη του MUO. Όταν κάνετε μια αγορά χρησιμοποιώντας συνδέσμους στον ιστότοπό μας, ενδέχεται να κερδίσουμε μια προμήθεια θυγατρικών. Διαβάστε περισσότερα.

Το Sequelize είναι ένας αντικειμενο-σχεσιακός χάρτης (ORM) του Node.js που παρέχει ένα εύχρηστο API για σχεσιακές βάσεις δεδομένων όπως Oracle, PostgreSQL, MySQL, MariaDB, SQLite και άλλα.

Το PostgreSQL είναι ένα ευρέως χρησιμοποιούμενο σύστημα διαχείρισης σχεσιακών βάσεων δεδομένων ανοιχτού κώδικα (RDBMS) γνωστό για τα εκτεταμένα χαρακτηριστικά, την εξαιρετική ασφάλεια και την επεκτασιμότητα του.

Η PostgreSQL είναι συμβατή με πολλές γλώσσες προγραμματισμού, συμπεριλαμβανομένης της JavaScript, καθιστώντας την ιδανική επιλογή για εφαρμογές ιστού και δεδομένων. Εδώ θα μάθετε να δημιουργείτε μια βάση δεδομένων Postgres στο Node.js χρησιμοποιώντας το Sequelize.

Βήμα 1: Εγκατάσταση εξαρτήσεων

Για να μπορέσετε να χρησιμοποιήσετε το PostgreSQL, πρέπει να το εγκαταστήσετε στο σύστημά σας. Για να κάνετε λήψη του PostgreSQL, μεταβείτε στο

instagram viewer
Ιστότοπος PostgreSQL και επιλέξτε το λειτουργικό σας σύστημα. Εάν αντιμετωπίσετε προβλήματα κατά τη διάρκεια αυτής της διαδικασίας στο macOS, ελέγξτε το εγκατάσταση PostgreSQL στο macOS.

Εναλλακτικά, μπορείτε να χρησιμοποιήσετε την PostgreSQL στο cloud αξιοποιώντας πλατφόρμες όπως π.χ ElephantSQL που προσφέρουν την PostgreSQL ως υπηρεσία.

Στη συνέχεια, εγκαταστήστε συνέχεια εκτελώντας την ακόλουθη εντολή:

npm εγκατάσταση sequelize

Στη συνέχεια, εγκαταστήστε το πρόγραμμα οδήγησης της βάσης δεδομένων PostgreSQL εκτελώντας την παρακάτω εντολή:

npm εγκατάσταση pg pg-hstore

Βήμα 2: Σύνδεση σε μια βάση δεδομένων PostgreSQL

Στον κατάλογο πηγής του έργου σας, δημιουργήστε ένα config ντοσιέ. Στο config φάκελο, δημιουργία α db.js αρχείο. Αυτό το αρχείο θα περιέχει όλο τον κώδικα που συνδέει την εφαρμογή Node.js με μια βάση δεδομένων PostgreSQL.

Στη συνέχεια, στο δικό σας db.js αρχείο, εισαγωγή Συνέχεια από συνέχεια.

συνθ { Sequelise } = απαιτώ("συνέχεια");

Στη συνέχεια, πρέπει να δημιουργήσετε ένα Συνέχεια παράδειγμα. Αυτή η περίπτωση λαμβάνει παραμέτρους σύνδεσης, όπως το όνομα της βάσης δεδομένων, το όνομα χρήστη και τον κωδικό πρόσβασης ως ορίσματα. Εναλλακτικά, λαμβάνει ένα μόνο URI σύνδεσης ως όρισμα.

Για παράδειγμα:

// Παράμετροι σύνδεσης
συνθ ακολουθώ = νέος Συνέχεια('βάση δεδομένων', 'όνομα χρήστη', 'Κωδικός πρόσβασης')

// με URI
συνθ ακολουθώ = νέος Συνέχεια (process.env. POSTGRESQL_DB_URI)

Επιπλέον, αυτός ο κατασκευαστής λαμβάνει ένα αντικείμενο διαμόρφωσης ως προαιρετικό όρισμα.

Στη συνέχεια, δοκιμάστε τη σύνδεσή σας sequelise προσθέτοντας τον κωδικό κάτω από το δικό σας db.js αρχείο:

συνθ testDbΣύνδεση = ασυγχρονισμός () => {
δοκιμάστε {
αναμένω sequelize.authenticate();
κονσόλα.κούτσουρο("Η σύνδεση έχει δημιουργηθεί με επιτυχία.");
} σύλληψη (λάθος) {
κονσόλα.λάθος("Δεν είναι δυνατή η σύνδεση στη βάση δεδομένων:", λάθος);
}
};

Το μπλοκ κωδικών παραπάνω καλεί το συνέχεια.πιστοποιώ την αυθεντικότητα() μέθοδος για να ελέγξετε εάν η σύνδεση είναι εντάξει και εκτυπώνει "Η σύνδεση πραγματοποιήθηκε με επιτυχία". να παρηγορήσει αν είναι. Εάν υπάρχει σφάλμα σύνδεσης, εκτυπώνεται "Δεν είναι δυνατή η σύνδεση στη βάση δεδομένων:" μαζί με το σφάλμα.

Τέλος, εξάγετε το παράδειγμα sequelize και το testDbConnection λειτουργία.

μονάδα μέτρησης.εξαγωγές = { πλ: sequelize, testDbConnection };

Βήμα 3: Δημιουργία μοντέλου Sequelize

Στον κατάλογο πηγής του έργου σας, δημιουργήστε ένα μοντέλα ντοσιέ. Αυτός ο φάκελος θα περιέχει όλα τα μοντέλα ακολουθίας σας. Στη συνέχεια, δημιουργήστε ένα αρχείο μοντέλου. Το όνομα που δίνετε στο αρχείο πρέπει να παρέχει πληροφορίες σχετικά με την αναπαράσταση του μοντέλου.

Στο αρχείο μοντέλου σας, εισαγάγετε το παράδειγμα sequelize.

// example.js
συνθ { τετρ. } = απαιτώ("../config/db");

Στη συνέχεια, εισαγωγή Τύποι Δεδομένων από συνέχεια.

συνθ {Τύποι δεδομένων } = απαιτώ("συνέχεια");

Τύποι Δεδομένων σας επιτρέπει να ορίσετε τον απαιτούμενο τύπο δεδομένων για κάθε ιδιοκτησία στο μοντέλο σας.

Μπορείτε να δημιουργήσετε ένα νέο μοντέλο sequelize που αντιπροσωπεύει έναν πίνακα στη βάση δεδομένων σας καλώντας το καθορίζω μέθοδος για το παράδειγμα ακολουθίας.

ο καθορίζω Η μέθοδος παίρνει δύο ορίσματα: Το όνομα μοντέλου και ένα αντικείμενο χαρακτηριστικών. Το όνομα μοντέλου αντιπροσωπεύει το όνομα του μοντέλου. Το αντικείμενο χαρακτηριστικών αντιπροσωπεύει τις στήλες της βάσης δεδομένων, με κάθε ιδιότητα να αντιπροσωπεύει μια στήλη.

Ακολουθεί ένα παράδειγμα ενός μοντέλου sequelise:

συνθ Χρήστης = sq.define("χρήστης", {
ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ: {
τύπος: Τύποι δεδομένων. ΣΕΙΡΑ,
allowNull: ψευδής,
πρωτεύων κλειδί: αληθής,
},

πλήρες όνομα: {
τύπος: Τύποι δεδομένων. ΣΕΙΡΑ,
},

ηλικία: {
τύπος: Τύποι δεδομένων. ΑΚΕΡΑΙΟΣ ΑΡΙΘΜΟΣ,
},

απασχολούνται: {
τύπος: Τύποι δεδομένων. BOOLEAN,
Προεπιλεγμένη τιμή: ψευδής,
},
});

Το μπλοκ κώδικα παραπάνω ορίζει α Χρήστης μοντέλο με ένα ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ, πλήρες όνομα, ηλικία, και απασχολούνται ιδιότητες.

ο ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ Η ιδιότητα είναι ένας τύπος συμβολοσειράς που δεν μπορεί να είναι κενός (allowNull: ψευδής) και λειτουργεί επίσης ως το πρωτεύον κλειδί για το Χρήστης τραπέζι (πρωτεύονΚλειδί: αληθές). ο πλήρες όνομα και το ηλικία Η ιδιοκτησία είναι μια συμβολοσειρά (Τύποι Δεδομένων. ΣΕΙΡΑ) και ακέραιος τύπος (Τύποι Δεδομένων. ΑΚΕΡΑΙΟΣ ΑΡΙΘΜΟΣ), αντίστοιχα. ο απασχολούνται Η ιδιότητα είναι ένας τύπος boolean με προεπιλεγμένη τιμή ψευδής, πράγμα που σημαίνει ότι εάν δεν έχει καθοριστεί, θα οριστεί αυτόματα σε false στη βάση δεδομένων.

Στη συνέχεια, καλέστε το συγχρονισμός μέθοδο στο μοντέλο σας. Αυτή η μέθοδος παίρνει ένα αντικείμενο διαμόρφωσης ως όρισμα. Ανάλογα με τις επιλογές στο αντικείμενο διαμόρφωσης, το συγχρονισμός μέθοδος μπορεί:

  • User.sync(): Δημιουργήστε τον πίνακα εάν δεν υπάρχει και δεν κάνετε τίποτα εάν υπάρχει.
  • User.sync({ force: true }): Δημιουργήστε τον πίνακα και αφήστε τον πρώτο εάν υπάρχει ήδη.
  • User.sync({ alter: true }): Ελέγξτε την τρέχουσα κατάσταση του πίνακα στη βάση δεδομένων και πραγματοποιήστε τις απαραίτητες αλλαγές στον πίνακα για να ταιριάζει με το μοντέλο.

Για παράδειγμα:

User.sync().then(() => {
κονσόλα.κούτσουρο("Μοντέλο χρήστη συγχρονίστηκε");
});

Το μπλοκ κώδικα παραπάνω δημιουργεί τον πίνακα βάσης δεδομένων για το Χρήστης μοντέλο αν δεν υπάρχει και δεν κάνει τίποτα αν υπάρχει.

Τέλος, εξάγετε το μοντέλο σας:

μονάδα μέτρησης.exports = Χρήστης;

Ερώτηση μιας βάσης δεδομένων PostgreSQL

Το Sequelize παρέχει διάφορες μεθόδους που σας επιτρέπουν να αλληλεπιδράτε με τη βάση δεδομένων PostgreSQL χωρίς να γράφετε ακατέργαστα Εντολές SQL.

Αποθήκευση δεδομένων στο PostgreSQL

Για να αποθηκεύσετε δεδομένα σε μια βάση δεδομένων PostgreSQL, καλέστε το δημιουργώ μέθοδο στο μοντέλο σας και περάστε ένα αντικείμενο που υλοποιεί το μοντέλο PostgreSQL ως όρισμα.

Για παράδειγμα:

συνθ mike = User.create({
ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ: "[email protected]",
πλήρες όνομα: "Μάικ Σμιθ",
ηλικία: 30,
απασχολούνται: αληθής,
});

Το μπλοκ κώδικα παραπάνω δημιουργεί ένα Χρήστης παράδειγμα του μικρόφωνο στη βάση δεδομένων σας και δημιουργεί αυτόματα ένα μοναδικό αναγνωριστικό.

Ανάκτηση δεδομένων από την PostgreSQL

Τα δεδομένα μπορούν να ανακτηθούν με διάφορους τρόπους από μια βάση δεδομένων PostgreSQL χρησιμοποιώντας το sequelize, αλλά εξαρτάται από τη φύση των δεδομένων που θέλετε να λάβετε.

Οι πιο συνηθισμένες μέθοδοι ανάκτησης δεδομένων είναι οι βρες ένα και βρείτε όλα μεθόδους. ο βρείτε όλα επιστρέφει όλες τις παρουσίες δεδομένων που ικανοποιούν ένα δεδομένο ερώτημα, ενώ βρες ένα επιστρέφει την πρώτη εμφάνιση που ικανοποιεί το ερώτημα.

Για παράδειγμα:

// Εύρεση όλων των χρηστών
συνθ χρήστες = αναμένω User.findAll();

Ο παραπάνω κωδικός θα επιστρέψει όλα τα Χρήστης περιπτώσεις στη βάση δεδομένων.

Μπορείτε να φιλτράρετε τα δεδομένα που επιστρέφονται χρησιμοποιώντας το που δήλωση. Αυτή η δήλωση σάς επιτρέπει να προσθέσετε ορισμένες συνθήκες στο ερώτημα. Το ερώτημά σας θα επιστρέψει μόνο περιπτώσεις που πληρούν αυτές τις προϋποθέσεις.

Για παράδειγμα:

User.findAll({
που: {
απασχολούνται: ψευδής
}
});

Ο παραπάνω κωδικός θα επιστρέψει όλα τα Χρήστης περιπτώσεις με τους απασχολούνται ιδιοκτησία ορίζεται σε ψευδής στη βάση δεδομένων.

Ενημέρωση δεδομένων στο PostgreSQL

Μπορείτε να ενημερώσετε δεδομένα στη βάση δεδομένων PostgreSQL καλώντας το εκσυγχρονίζω μέθοδο και περνώντας ένα φίλτρο ως όρισμα.

Για παράδειγμα:

αναμένω User.update({ απασχολούνται: αληθής }, {
που: {
απασχολούνται: ψευδής
}
});

Ο παραπάνω κώδικας αλλάζει όλα τα Χρήστης περιπτώσεις με ένα απασχολούνται αξία του ψευδής προς την αληθής.

Εναλλακτικά, μπορείτε να ενημερώσετε τα δεδομένα τροποποιώντας μη αυτόματα τις ιδιότητες που θέλετε να αλλάξετε και καλώντας το αποθηκεύσετε μέθοδος στην περίπτωση.

Για παράδειγμα:

συνθ userMike = αναμένω User.findOne({ που: { ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ: "[email protected]" } });

αν(userMike !== μηδενικό) {
userMike.email = "[email protected]"
αναμένω userMike.save()
}

Ο παραπάνω κώδικας θέτει ερωτήματα στη βάση δεδομένων για έναν χρήστη που έχει το email "[email protected]" χρησιμοποιώντας το βρες ένα μέθοδος. Εάν βρεθεί ο χρήστης, εκχωρεί εκ νέου την ιδιότητα email στο "[email protected]" και καλεί το αποθηκεύσετε μέθοδο ενημέρωσης της βάσης δεδομένων.

Διαγραφή δεδομένων στο PostgreSQL

Μπορείτε να διαγράψετε δεδομένα στο PostgreSQL καλώντας το καταστρέφω μέθοδο και περνώντας ένα φίλτρο ως όρισμα.

Για παράδειγμα:

αναμένω User.destroy({
που: {
ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ: "[email protected]"
}
});

Ο παραπάνω κώδικας θέτει ερωτήματα στη βάση δεδομένων για έναν χρήστη που έχει το email “[email protected]” και διαγράφει τον χρήστη από τη βάση δεδομένων.

Οφέλη από τη χρήση της PostgreSQL με το Sequlize

Η σύνταξη πρωτογενών ερωτημάτων SQL για αλληλεπίδραση με μια βάση δεδομένων PostgreSQL μπορεί να είναι μια ταλαιπωρία. Με το Sequelize, μπορείτε εύκολα να ορίσετε μοντέλα, να δημιουργήσετε συσχετίσεις μεταξύ τους και να υποβάλετε ερωτήματα στη βάση δεδομένων με ένα απλό και διαισθητικό API. Εναλλακτικά, μπορείτε να χρησιμοποιήσετε άλλα ORM, όπως το TypeORM, για να αλληλεπιδράσετε με μια βάση δεδομένων PostgreSQL χωρίς την ταλαιπωρία να γράψετε ανεπεξέργαστα ερωτήματα SQL.