
npm start נכשל כי הוא מחפש MySQL מקומי בפורט 3306, והמסד נמצא ב-RDS. ההרצאה מגדירה את משתני הסביבה בקובץ .env על המכונה הלינוקסית, ביד, כדי לדעת מה לשים אחר כך בסקריפט האוטומטי.npm start קורא את package.json. שם מוגדר שהפקודה היא node server.js, ושם מופיעות גם ה-dependencies.cat server.js מראה את הספריות (כולל MySQL) ואת טעינת .env. הקוד משתמש במשתנים DB_HOST, DB_USER, DB_PASS, DB_NAME ו-TABLE_NAME, ובפורט (אחרת 3000). המשתנים מחברים בין הקוד הכללי למקרה הספציפי.export DB_HOST=<endpoint> (אותיות קטנות ב-export). echo מאשר שהוא נתפס, אבל אחרי restart הוא נעלם.echo עם הפניית פלט > יוצר או דורס את הקובץ .env, ו->> מוסיף שורה בסופו. מוסיפים כך DB_HOST, DB_USERNAME (admin), הסיסמה, DB_NAME (Practicu), TABLE_NAME (users) ופורט 80. cat .env בודק כל שורה.npm start רץ בלי שגיאה בפורט 80, וגלישה לכתובת ה-IP של המכונה מציגה את הנתונים מ-MySQL.export תקף רק עד האתחול, ו-.env נטען בכל הפעלה..env ולהריץ אותו.הטקסט המלא של הדקות הראשונות בהרצאה «הגדרת קובץ env פרויקט NodeJS» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
שלום לכולם. בסרטון זה אנחנו נחבר את האתר שלנו לדאטה בייס, ל-MySQL, כי כרגע יש לנו הודעת שגיאה כשאנחנו מנסים להפעיל את האתר. פקודת NPM Start נותנת לי פה Error, שאי אפשר להתחבר לפורט שלוש שלוש אפס שש כי הוא מחפש אותו מקומית והדאטה בייס שלנו בכלל נמצא בענן, במכונה נפרדת ב-RDS.
אפשר לראות שפקודת NPM Start מריצה את השרת Node.js עם קובץ server.js. דרך אגב, איך פקודת NPM Start ידעה איזה שם של קובץ להריץ מתוך התיקייה? איך היא ידעה דווקא את ה-server.js להריץ ולא איזשהו קובץ אחר?
הרי בתיקייה יכולים להיות הרבה קבצים. איך NPM Start יודעת מה להריץ? כי היא מסתכלת בקובץ package.json. אז NPM כברירת מחדל מסתכל ב-package.json, ואם נעשה cat על package.json, כאן אפשר לראות שכנרשום NPM Start הוא יריץ את הפקודה node רווח server.js.
מפה הוא לקח את הפקודה. אז קובץ package.json, בתוכו מסתכל ה-NPM. כאן הוא רואה את ה-dependencies, את מה להתקין. כאן הוא רואה איך לעשות את הסטארט של האפליקציה, אבל זה לא פותר לנו את הבעיה.
NPM Start מריץ לנו את הפקודה node server.js ועף בשורה מספר ארבעים כי הוא לא מצליח להתחבר ל-MySQL. אם אנחנו נסתכל מה קורה בתוך server.js, cat server.js פה למעלה, אפשר לראות את כל ה-requires, את כל ספריות העזר שהוא מטעין, כולל ספריית חיבור ל-MySQL.
פה הפקודה שטוענת משתני הסביבה מתוך קובץ env. זאת אומרת בנוסף למשתני הסביבה הקיימים בתוך מערכת ההפעלה, יש משתני סביבה נוספים שנטענים רק עבורנו מתוך קובץ נקודה env.
זאת הפקודה הזאת. פה למטה אנחנו משתמשים בהם.