משתנה סביבה מספק מידע על הסביבה שבה תהליך פועל. הם מגדירים יציאות שרת וחיבורי מסד נתונים, מסתירים נתונים רגישים כמו מפתחות API ועוד הרבה יותר.
דרך NestJS לקרוא משתני סביבה שונה מחבילת dotenv הסטנדרטית של NodeJS.
מודול התצורה של NestJS מאפשר לך לנהל את משתני הסביבה שלך בכמה שלבים בלבד.
שלב 1: התקנת תלות
NestJS מספקת מכשיר ייעודי @nestjs/config חבילה המשתמשת ב- dotenv חבילה מתחת למכסה המנוע. חבילת אפס תלות זו טוענת משתני סביבה מ-a .env קובץ לתוך process.env. האובייקט process.env הוא משתנה גלובלי המוזרק בזמן ריצה לשימוש האפליקציה שלך.
התקן את חבילת התצורה של NestJS על ידי הפעלת:
npm להתקין @nestjs/config
חבילת התצורה של NestJS פועלת על ידי חשיפת מודול תצורה ושירות תצורה לאפליקציה. מודול התצורה מציין את ה .env להגיש את האפליקציה לקריאה. במקביל, שירות התצורה חושף את המידע בתוך .env קובץ לשאר הבקשה.
שלב 2: יצירת קבצי ENV
אחסון משתני סביבה בקובץ מאפשר לך לגשת אליהם בקלות מכל שפה, על פני מערכות הפעלה שונות. אתה יכול לשלוט על גרסאות אלה .env קבצים, כך שהם מגדילים את ניידות הפרויקט ויכולים להקל על בעיות ניפוי באגים.
גישת NestJS ליצירת קובצי .env שונה מההמלצה הרשמית של dotenv. על פי התיעוד של dotenv, אין ליצור יותר מקובץ .env אחד באפליקציה. NestJS מאפשר לך ליצור קובצי .env מרובים עם שמות שונים.
כתרגול טוב, עליך ליצור תמיד קובצי .env בספריית השורש של הפרויקט שלך ולכלול אותם בקובץ שלך .gitignore קוֹבֶץ.
אין דרך מיוחדת ליצור קובץ .env - פשוט צור וערוך אותם עם עורך הטקסט הרגיל שלך - אבל הם חייבים להתחיל עם .env. לדוגמה, .env.development.
שלב 3: הגדרת מודול התצורה
בצע את השלב שלהלן כדי להגדיר את מודול התצורה שלך באופן גלובלי ולציין את .env נתיבים:
- במודול השורש של הפרויקט שלך (app.modue.ts) קובץ, ייבוא ConfigModule מ @nestjs/config.
- לְהוֹסִיף ConfigModule לשלך יבוא מערך וקורא ל עבור שורש שיטה עליו.
- העבר אובייקט תצורה ל- עבור שורש שיטה, עם א הוא גלובלי רכוש ל נָכוֹן. אפשרות זו משתפת את התצורה דרך המודולים האחרים באפליקציה שלך, כלומר לא תצטרך להגדיר אותה יותר מפעם אחת.
- ציין את שלך envFilePath באובייקט התצורה שלך. מאפיין זה יכול להיות מחרוזת (אם יש לך כזו .env file) או מערך המכיל את כל .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 ואישורים, הם מאפשרים לך לשנות תצורה מבלי לגעת בקוד המקור הבסיסי.