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

Ο τρόπος ανάγνωσης των μεταβλητών περιβάλλοντος του NestJS διαφέρει από το τυπικό πακέτο dotenv του NodeJS.

Η μονάδα διαμόρφωσης NestJS σάς επιτρέπει να διαχειρίζεστε τις μεταβλητές του περιβάλλοντος σας σε λίγα μόνο βήματα.

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

Το NestJS παρέχει ένα ειδικό @nestjs/config πακέτο που χρησιμοποιεί το dotenv συσκευασία κάτω από την κουκούλα. Αυτό το πακέτο μηδενικής εξάρτησης φορτώνει μεταβλητές περιβάλλοντος από το a .env αρχείο σε διεργασία.env. Το αντικείμενο process.env είναι μια καθολική μεταβλητή που εισάγεται κατά το χρόνο εκτέλεσης για χρήση της εφαρμογής σας.

Εγκαταστήστε το πακέτο διαμόρφωσης NestJS εκτελώντας:

npm εγκατάσταση @nestjs/config

Το πακέτο διαμόρφωσης NestJS λειτουργεί εκθέτοντας μια μονάδα διαμόρφωσης και μια υπηρεσία διαμόρφωσης στην εφαρμογή. Η μονάδα διαμόρφωσης καθορίζει το

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

Βήμα 2: Δημιουργία αρχείων ENV

Η αποθήκευση μεταβλητών περιβάλλοντος σε ένα αρχείο σάς επιτρέπει πρόσβαση σε αυτά εύκολα από οποιαδήποτε γλώσσα, σε διαφορετικά ΛΣ. Μπορείτε να τα ελέγξετε με έκδοση .env αρχεία, ώστε να αυξάνουν τη φορητότητα του έργου και να διευκολύνουν τα προβλήματα εντοπισμού σφαλμάτων.

Η προσέγγιση NestJS για τη δημιουργία αρχείων .env διαφέρει από την επίσημη σύσταση dotenv. Σύμφωνα με την τεκμηρίωση του dotenv, δεν πρέπει να δημιουργήσετε περισσότερα από ένα αρχεία .env σε μια εφαρμογή. Το NestJS σάς επιτρέπει να δημιουργείτε πολλά αρχεία .env με διαφορετικά ονόματα.

Ως καλή πρακτική, θα πρέπει πάντα να δημιουργείτε αρχεία .env στον ριζικό κατάλογο του έργου σας και να τα συμπεριλαμβάνετε στον δικό σας .gitignore αρχείο.

Δεν υπάρχει ειδικός τρόπος για να δημιουργήσετε ένα αρχείο .env—απλώς δημιουργήστε και επεξεργαστείτε το με τον κανονικό επεξεργαστή κειμένου σας—αλλά πρέπει να ξεκινούν με .env. Για παράδειγμα, .env.ανάπτυξη.

Βήμα 3: Ρύθμιση της μονάδας διαμόρφωσης

Ακολουθήστε το παρακάτω βήμα για να ρυθμίσετε το Config Module καθολικά και να καθορίσετε το .env μονοπάτια:

  1. Στη βασική ενότητα του έργου σας (app.modue.ts) αρχείο, εισαγωγή ConfigModule από @nestjs/config.
  2. Προσθήκη ConfigModule στο δικό σου εισαγωγές συστοιχία και καλέστε το forRoot μέθοδο σε αυτό.
  3. Περάστε ένα αντικείμενο διαμόρφωσης στο forRoot μέθοδος, με ένα είναι Παγκόσμια ιδιοκτησία σε αληθής. Αυτή η επιλογή μοιράζεται τη διαμόρφωση μέσω των άλλων λειτουργικών μονάδων στην εφαρμογή σας, πράγμα που σημαίνει ότι δεν θα χρειαστεί να τη ρυθμίσετε περισσότερες από μία φορές.
  4. Προσδιορίστε το δικό σας envFilePath στο αντικείμενο διαμόρφωσής σας. Αυτή η ιδιότητα μπορεί είτε να είναι συμβολοσειρά (αν έχετε .env αρχείο) ή έναν πίνακα που περιέχει όλα σας .env αρχεία και θα πει στη μονάδα διαμόρφωσης ποια αρχεία να αναζητήσει.
// app.module.ts
@Μονάδα μέτρησης({
εισαγωγές: [
ConfigModule.forRoot({
isGlobal: αληθής,
envFilePath: 'Όνομα (α) των αρχείων σας .env',
}),

Βήμα 4: Χρήση της υπηρεσίας Config για την ανάγνωση μεταβλητών περιβάλλοντος

Για να αποκτήσετε πρόσβαση στις τιμές διαμόρφωσης ξεκινήστε με την εισαγωγή ConfigService από @nestjs/config. Κάντε την ένεση στο κατασκευαστής της τάξης δηλώνοντας α ιδιωτικός μεταβλητή και εκχώρηση ConfigService ως τον τύπο του.

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

κατασκευαστής(ιδιωτική διαμόρφωση: ConfigService) {}

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

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

const envVar = this.config.get<σειρά>('ENV_VALUE');

ο ConfigService αναζητά μια τιμή με το όνομα "ENV_VALUE" και επιστρέφει την τιμή της.

Σημειώστε ότι αν δύο .env Τα αρχεία περιέχουν το ίδιο όνομα ιδιότητας, το πρώτο που καθορίζεται στο envFilePath θα έχει προτεραιότητα.

Η σημασία των μεταβλητών περιβάλλοντος

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

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