דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. יצירת פרויקט nodeJS שיבקש מהמשתמש קונפיג בהרצה הראשונה

יצירת פרויקט nodeJS שיבקש מהמשתמש קונפיג בהרצה הראשונה

מתוזמן נעוץ נעול הועבר תכנות
7 פוסטים 4 כותבים 183 צפיות 4 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • צדיק תמיםצ מנותק
    צדיק תמיםצ מנותק
    צדיק תמים
    כתב ב נערך לאחרונה על ידי
    #1

    ראיתי שלדוגמה ב-nodeBB אם מריצים nodebb install הוא מבקש פרטי קונפיג - פרטי מסד נתונים וכו'.
    השאלה האם אני יכול ליצור גם כזה דבר? שכאשר יורידו ויריצו בפעם הראשונה את הפרויקט שלי, באמצעות npm start (או פקודה ייחודית לפרויקט), הוא יבקש קונפיג, ויכניס את הקלט בקובץ הקונפיג - config.env?
    תודה רבה!

    Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
    טיפים

    chvC תגובה 1 תגובה אחרונה
    0
    • צדיק תמיםצ צדיק תמים

      ראיתי שלדוגמה ב-nodeBB אם מריצים nodebb install הוא מבקש פרטי קונפיג - פרטי מסד נתונים וכו'.
      השאלה האם אני יכול ליצור גם כזה דבר? שכאשר יורידו ויריצו בפעם הראשונה את הפרויקט שלי, באמצעות npm start (או פקודה ייחודית לפרויקט), הוא יבקש קונפיג, ויכניס את הקלט בקובץ הקונפיג - config.env?
      תודה רבה!

      chvC מנותק
      chvC מנותק
      chv
      כתב ב נערך לאחרונה על ידי
      #2

      @צדיק-תמים אמר ביצירת פרויקט nodeJS שיבקש מהמשתמש קונפיג בהרצה הראשונה:

      ראיתי שלדוגמה ב-nodeBB אם מריצים nodebb install הוא מבקש פרטי קונפיג - פרטי מסד נתונים וכו'.
      השאלה האם אני יכול ליצור גם כזה דבר? שכאשר יורידו ויריצו בפעם הראשונה את הפרויקט שלי, באמצעות npm start (או פקודה ייחודית לפרויקט), הוא יבקש קונפיג, ויכניס את הקלט בקובץ הקונפיג - config.env?
      תודה רבה!

      באיזה קטע אתה שואל?
      כלומר - אם אתה יכול? ברור שאתה יכול. מה השאלה שלך בדיוק? אם זה כדאי? אם זה מתאים? איך לעשות את זה (איך לכתוב לקובץ 🤔 ? או מה..)?

      תגדיר את החקירה שלך

      בלוג | מייל

      צדיק תמיםצ תגובה 1 תגובה אחרונה
      3
      • chvC chv

        @צדיק-תמים אמר ביצירת פרויקט nodeJS שיבקש מהמשתמש קונפיג בהרצה הראשונה:

        ראיתי שלדוגמה ב-nodeBB אם מריצים nodebb install הוא מבקש פרטי קונפיג - פרטי מסד נתונים וכו'.
        השאלה האם אני יכול ליצור גם כזה דבר? שכאשר יורידו ויריצו בפעם הראשונה את הפרויקט שלי, באמצעות npm start (או פקודה ייחודית לפרויקט), הוא יבקש קונפיג, ויכניס את הקלט בקובץ הקונפיג - config.env?
        תודה רבה!

        באיזה קטע אתה שואל?
        כלומר - אם אתה יכול? ברור שאתה יכול. מה השאלה שלך בדיוק? אם זה כדאי? אם זה מתאים? איך לעשות את זה (איך לכתוב לקובץ 🤔 ? או מה..)?

        תגדיר את החקירה שלך

        צדיק תמיםצ מנותק
        צדיק תמיםצ מנותק
        צדיק תמים
        כתב ב נערך לאחרונה על ידי
        #3

        @chv בקטע של איך בערך לעשות כזה דבר? והאם זה אפשרי יחסית בקלות או קשה מאוד מאוד?

        Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
        טיפים

        chvC dovidD yossizY 3 תגובות תגובה אחרונה
        0
        • צדיק תמיםצ צדיק תמים

          @chv בקטע של איך בערך לעשות כזה דבר? והאם זה אפשרי יחסית בקלות או קשה מאוד מאוד?

          chvC מנותק
          chvC מנותק
          chv
          כתב ב נערך לאחרונה על ידי chv
          #4

          @צדיק-תמים אמר ביצירת פרויקט nodeJS שיבקש מהמשתמש קונפיג בהרצה הראשונה:

          @chv בקטע של איך בערך לעשות כזה דבר? והאם זה אפשרי יחסית בקלות או קשה מאוד מאוד?

          כל דבר הוא קל, וקשה, תלוי בהיכרות שלך עם התחום וכו'
          זה לא נשמע לי מסובך במיוחד.

          אני הייתי מממש את זה פשוט. קובץ JS שיכסה את התהליך (install.js).
          בקובץ הזה אני הייתי תחילה עושה ולידציה שאין את ההגדרות שאני מחפש (שלא עשו כבר את ההתקנה) נגיד בודק קונפיג וכדו'

          אם אין את הקונפיג - מתחיל תהליך התקנה:
          מכניס את ה-prompts שאני צריך (אגב תכיר את הספרייה הזאת (עריכה עכשיו ראיתי שזה ספרייה בארכיון.. אני משתמש בה באיזה מקום.. הנה הצאצאית שלה המתוחזקת ומעודכנת כיום), מוצלחת מאוד ל-prompt בנוד, עם המון אופציות וממשק CLI מעולה),
          מהתוצאות של ה-prompts אתה מעדכן את הקונפיג (יוצר את הקובץ, או פשוט מעדכן קובץ קיים)

          לכאורה זהו.

          בלוג | מייל

          תגובה 1 תגובה אחרונה
          2
          • צדיק תמיםצ צדיק תמים

            @chv בקטע של איך בערך לעשות כזה דבר? והאם זה אפשרי יחסית בקלות או קשה מאוד מאוד?

            dovidD מנותק
            dovidD מנותק
            dovid
            ניהול
            כתב ב נערך לאחרונה על ידי
            #5

            @צדיק-תמים חידה להבין את דבריך.
            כפי ש@chv זו משימה שמורכבת מכמה שלבים מאוד מוגדרים,
            א. בדיקה אם הקובץ קיים
            ב. הגשת טופס/שורת פקודה לקבל את הפרמטרים
            ג. כתיבה לקובץ

            האם זה קל ופשוט או קשה מאוד מאוד? זה שאלה מאוד אינבדואלית.
            לי כל דבר מאוד קשה כי אני עצלן, ולמי שלא מתכנת זה קשה כי הוא לא יודע איך לעשות.
            בא תתמקד בשלב שהוא בעיניך נעלם, ואין לך מושג איך להתחיל איתו, ונראה אם יש לך בכלל יכולת לגשת לכזה דבר (יש לך..).

            • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
            • בכל נושא אפשר ליצור קשר dovid@tchumim.com
            תגובה 1 תגובה אחרונה
            4
            • צדיק תמיםצ צדיק תמים

              @chv בקטע של איך בערך לעשות כזה דבר? והאם זה אפשרי יחסית בקלות או קשה מאוד מאוד?

              yossizY מנותק
              yossizY מנותק
              yossiz
              כתב ב נערך לאחרונה על ידי yossiz
              #6

              כבר ענו, אבל מכיון שכבר כתבתי את התשובה שלי אוסיף אותה לערימה...

              @צדיק-תמים
              א) הזכרת בשאלה ששם הקובץ יהיה config.env, זה מעלה בי חשד שאתה מתכנן שזה יהיה בפורמט של קבצי .env. אני מציע להיצמד ל-json כי זה פורמט שנתמך בצורה מובנית ב-JS וקל לכתוב אותו לקובץ.

              ב) חוץ מזה מדובר במשימה קלה למדי.

              חלק אותה לשלבים ותראה,

              בעליית התוכנה:

              • בדוק אם קיים קובץ קינפוג
              • במידה וקיים: המר את התוכן לאובייקט עם JSON.parse
              • במידה וההמרה מצליחה, בדוק אם יש בו כל הערכים הנחוצים
              • בדוק גישה ל-DB וכו'
              • תשמור במשתנה כלשהו אם הבדיקות עברו בהצלחה

              מפה והלאה אפשר לעשות פשוט או להיות מסובך...

              • אם הבדיקות לא הצליחו, אפשר פשוט ליצור רק ראוט אחד של דף הקינפוג, שבסוף התהליך יחייב להריץ מחדש את האפליקציה.

              או אפשר יותר מסובך

              • תכניס middleware שבודק את המשתנה ששומר אם הקינפוג תקין. במידה וזה לא תקין, תעשה redirect שיפנה לדף קינפוג
                יש פה סיבוכים, אז אני לא ממליץ על דרך זו אלא אם אתה ממש רוצה

              📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

              D תגובה 1 תגובה אחרונה
              5
              • dovidD dovid פיצל נושא זה ב
              • D davidnead

                @chv אמר ביצירת פרויקט nodeJS שיבקש מהמשתמש קונפיג בהרצה הראשונה:

                @davidnead אמר ביצירת פרויקט nodeJS שיבקש מהמשתמש קונפיג בהרצה הראשונה:

                לא רואה שום סיבה להכניס פרטי חיבור למסד נתונים במשתני סביבה.

                אלא מה? לחשוף אותו בקוד?

                להכניס בקובץ קונפיג שלא נכנס לגיט. בדיוק כמו קובץ ENV שלא נכנס לגיט.
                זו דרך קלאסית שראיתי בדי והותר פרויקטים. אני מודע לזה שלא כל הידע העולמי נמצא ברשותי.

                אגב, @yossiz , בקישור שנתת הוא גם מזכיר את הדרך של קובץ קונפיג (בפורמט YML), אם כי הוא טוען שהיא פחות מומלצת.
                הטיעונים שהוא מזכיר הם בהחלט הגיוניים, ורלוונטים מאוד לפרוייקטים שמתמודדים עם קשיים שהוא הציג. די מיותר בפרוייקטים "פשוטים" יותר.

                רם הצורך של @צדיק-תמים נובע מהרקו, שכנראה לא מאפשר עריכת קבצי קונפיג (אם הבנתי נכון, לא מכיר אותו) אז כנראה ממשק שורת פקודה הוא פתרון (אחד), רק פתרון לא נוח בעליל. וגם לגבי זה - הממשק יכול לשמש לשם הגדרת משתני סביבה ממש כשם שהוא יכול לשמש לקלוט הגדרות ישירות אל תוך משתנים. וגם אם הוא כן רוצה להכניס אותם לתוך משתני סביבה, למה לכתוב אותם אל תוך הקובץ? היינו הך לקלוט אותם ישירות לקוד. ובכלל, למה לכתוב מידע משתנה אל תוך קובץ קשיח?
                אקיצור קובץ ENV, כמו כל קובץ הגדרות אחר, מועיל או במקרה שמתאפשרת עריכה ישירה של הקובץ, או במקרה של התקנה ראשונית שתאפשר לאחר מכן באופן קבוע להריץ את הפרויקט עם אותם משתנים.

                למשתני סביבה יש למשל יתרון כאשר קובעים אותם ומשתמשים בהם ליותר מהרצה אחת או אפליקציה אחת. הגדרה חד פעמית (גם אם זמנית) של משתני סביבה, ללא מגע ישיר עם האפליקציה וללא תלות בטכנולוגיה שלה, והאפליקציה יכולה כבר לגשת אליהם בצורה אחידה. ממש כמו משתני הסביבה הקבועים של המערכת הנותנים נתיבים והגדרות קבועות בלי שהאפליקציה או המשתמש צריכים לטפל בהם.

                מקרה נוסף שהייתי משתמש במשתני סביבה זה אם אני רוצה את משתני המערכת, ורוצה לאפשר ללקוח לדרוס אותם בצורה אופציונלית.

                dovidD מנותק
                dovidD מנותק
                dovid
                ניהול
                כתב ב נערך לאחרונה על ידי
                #7

                אנא לא לעבור נושא, חשוב ככל שיהיה.

                • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                תגובה 1 תגובה אחרונה
                0
                תגובה
                • תגובה כנושא
                התחברו כדי לפרסם תגובה
                • מהישן לחדש
                • מהחדש לישן
                • הכי הרבה הצבעות


                בא תתחבר לדף היומי!
                • התחברות

                • אין לך חשבון עדיין? הרשמה

                • התחברו או הירשמו כדי לחפש.
                • פוסט ראשון
                  פוסט אחרון
                0
                • דף הבית
                • קטגוריות
                • פוסטים אחרונים
                • משתמשים
                • חיפוש
                • חוקי הפורום