יצירת פרויקט nodeJS שיבקש מהמשתמש קונפיג בהרצה הראשונה
-
ראיתי שלדוגמה ב-nodeBB אם מריצים
nodebb install
הוא מבקש פרטי קונפיג - פרטי מסד נתונים וכו'.
השאלה האם אני יכול ליצור גם כזה דבר? שכאשר יורידו ויריצו בפעם הראשונה את הפרויקט שלי, באמצעות npm start (או פקודה ייחודית לפרויקט), הוא יבקש קונפיג, ויכניס את הקלט בקובץ הקונפיג -config.env
?
תודה רבה! -
@צדיק-תמים אמר ביצירת פרויקט nodeJS שיבקש מהמשתמש קונפיג בהרצה הראשונה:
ראיתי שלדוגמה ב-nodeBB אם מריצים
nodebb install
הוא מבקש פרטי קונפיג - פרטי מסד נתונים וכו'.
השאלה האם אני יכול ליצור גם כזה דבר? שכאשר יורידו ויריצו בפעם הראשונה את הפרויקט שלי, באמצעות npm start (או פקודה ייחודית לפרויקט), הוא יבקש קונפיג, ויכניס את הקלט בקובץ הקונפיג -config.env
?
תודה רבה!באיזה קטע אתה שואל?
כלומר - אם אתה יכול? ברור שאתה יכול. מה השאלה שלך בדיוק? אם זה כדאי? אם זה מתאים? איך לעשות את זה (איך לכתוב לקובץ ? או מה..)?תגדיר את החקירה שלך
-
@צדיק-תמים אמר ביצירת פרויקט nodeJS שיבקש מהמשתמש קונפיג בהרצה הראשונה:
@chv בקטע של איך בערך לעשות כזה דבר? והאם זה אפשרי יחסית בקלות או קשה מאוד מאוד?
כל דבר הוא קל, וקשה, תלוי בהיכרות שלך עם התחום וכו'
זה לא נשמע לי מסובך במיוחד.אני הייתי מממש את זה פשוט. קובץ JS שיכסה את התהליך (install.js).
בקובץ הזה אני הייתי תחילה עושה ולידציה שאין את ההגדרות שאני מחפש (שלא עשו כבר את ההתקנה) נגיד בודק קונפיג וכדו'אם אין את הקונפיג - מתחיל תהליך התקנה:
מכניס את ה-prompts שאני צריך (אגב תכיר את הספרייה הזאת (עריכה עכשיו ראיתי שזה ספרייה בארכיון.. אני משתמש בה באיזה מקום.. הנה הצאצאית שלה המתוחזקת ומעודכנת כיום), מוצלחת מאוד ל-prompt בנוד, עם המון אופציות וממשק CLI מעולה),
מהתוצאות של ה-prompts אתה מעדכן את הקונפיג (יוצר את הקובץ, או פשוט מעדכן קובץ קיים)לכאורה זהו.
-
@צדיק-תמים חידה להבין את דבריך.
כפי ש@chv זו משימה שמורכבת מכמה שלבים מאוד מוגדרים,
א. בדיקה אם הקובץ קיים
ב. הגשת טופס/שורת פקודה לקבל את הפרמטרים
ג. כתיבה לקובץהאם זה קל ופשוט או קשה מאוד מאוד? זה שאלה מאוד אינבדואלית.
לי כל דבר מאוד קשה כי אני עצלן, ולמי שלא מתכנת זה קשה כי הוא לא יודע איך לעשות.
בא תתמקד בשלב שהוא בעיניך נעלם, ואין לך מושג איך להתחיל איתו, ונראה אם יש לך בכלל יכולת לגשת לכזה דבר (יש לך..). -
כבר ענו, אבל מכיון שכבר כתבתי את התשובה שלי אוסיף אותה לערימה...
@צדיק-תמים
א) הזכרת בשאלה ששם הקובץ יהיה config.env, זה מעלה בי חשד שאתה מתכנן שזה יהיה בפורמט של קבצי .env. אני מציע להיצמד ל-json כי זה פורמט שנתמך בצורה מובנית ב-JS וקל לכתוב אותו לקובץ.ב) חוץ מזה מדובר במשימה קלה למדי.
חלק אותה לשלבים ותראה,
בעליית התוכנה:
- בדוק אם קיים קובץ קינפוג
- במידה וקיים: המר את התוכן לאובייקט עם
JSON.parse
- במידה וההמרה מצליחה, בדוק אם יש בו כל הערכים הנחוצים
- בדוק גישה ל-DB וכו'
- תשמור במשתנה כלשהו אם הבדיקות עברו בהצלחה
מפה והלאה אפשר לעשות פשוט או להיות מסובך...
- אם הבדיקות לא הצליחו, אפשר פשוט ליצור רק ראוט אחד של דף הקינפוג, שבסוף התהליך יחייב להריץ מחדש את האפליקציה.
או אפשר יותר מסובך
- תכניס middleware שבודק את המשתנה ששומר אם הקינפוג תקין. במידה וזה לא תקין, תעשה redirect שיפנה לדף קינפוג
יש פה סיבוכים, אז אני לא ממליץ על דרך זו אלא אם אתה ממש רוצה
-