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

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

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

NODEJS שילוב משתנים במחרוזת קלט מהמשתמש

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

    מקווה שהכותרת תבטא נכון את השאלה.
    יש לי טבלת תזמון משימות ששולח הודעת SMS לרשימת אנשי קשר.
    בטבלה שמתי עמודת טקסט שניתן להוסיף להודעה, בגדול ההודעה מורכבת מחלקי הודעות קבועות ומשתנות.
    לדוג':
    "שלום ??? זו הודעה מבית הכנסת ???
    לידיעתך קיים על שמך חוב בסך ??? עבור ???.
    נא להסדיר את החוב עד לתאריך ???"
    ברצוני ליצור רשימת פרמטרים קבועים, שהלקוח יוכל להרכיב לבד את סדר ההודעה.
    כגון:
    "שלום name זו הודעה מבית הכנסת mosad
    לידיעתך קיים על שמך חוב בסך sum עבור prod.
    נא להסדיר את החוב עד לתאריך date"
    ואז בעצם הוא יבטל את תבנית ברירת המחדל וישלח בהתאמה אישית משלו.
    הנתונים נשמרים בטבלה ב MySQL ותהליך ה NODE בודק כל דקה האם יש משימות לביצוע עכשיו וא"כ הוא מבצע.
    איך הכי מומלץ לסדר את האפשרות הנ"ל.
    תודה

    תגובה 1 תגובה אחרונה
    0
    • י מנותק
      י מנותק
      יוסף בן שמעון
      כתב ב נערך לאחרונה על ידי
      #2

      אתה שומר את התבנית כך:

      var template = `שלום {{name}} זו הודעה מבית הכנסת {{synagogue}}
      לידיעתך קיים על שמך חוב בסך {{amount}} עבור {{for}}`
      

      וכשאתה מקבל את ההעדפות של המשתמש אתה בונה מהם אוביקט כזה:

      var option = {
          name: "יוסף",
          synagogue: "בעלז",
          amount: 100,
          for: "עליה"
      }
      

      ומריץ את הפונקציה הזו:

      function buildOutput(template, userOptions){
      	for(let i in userOptions){
      		template = template.replace(`{{${i}}}`, userOptions[i])
      	}
      	return template
      }
      
      ח תגובה 1 תגובה אחרונה
      6
      • ח מנותק
        ח מנותק
        חוקר
        השיב ליוסף בן שמעון ב נערך לאחרונה על ידי
        #3

        @יוסף-בן-שמעון
        כנראה שלא הסברתי את עצמי מספיק.
        אם הבנתי נכון את הדוגמא שלך הרי זה בעצם לספק את הארגומנטים הנדרשים לביצוע בניית המחרוזת, הוי אומר הצבת הערכים במשתנים.
        אני רציתי שהלקוח יוכל לשחק בכלל עם סדר הכיתוב במחרוזת.
        כגון במקום:
        "שלום name זו הודעה מבית הכנסת mosad
        לידיעתך קיים על שמך חוב בסך sum עבור prod.
        נא להסדיר את החוב עד לתאריך date"
        הלקוח יעשה:
        "הודעה חשובה מבית הכנסת mosad.
        שלום name!
        עדיין לא שילמת את חובך עבור prod, בסך sum .
        נא להסדיר את החוב עד לתאריך date"
        שיוכל לשנות את הסדר ולהשים את המשתנים שבא לו מתוך רשימת המשתנים שאתן לו

        WWWW תגובה 1 תגובה אחרונה
        1
        • WWWW מנותק
          WWWW מנותק
          WWW
          השיב לחוקר ב נערך לאחרונה על ידי
          #4

          @חוקר נו, הוא הביא לך פתרון מצוין.
          אתה אומר ללקוח לכתוב את המשתנים מתוך הרשימה שתקבע, עם סוגריים מסולסלות לפני ואחרי.

          WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

          תגובה 1 תגובה אחרונה
          3
          • ח מנותק
            ח מנותק
            חוקר
            כתב ב נערך לאחרונה על ידי
            #5

            אגב כבר נפגשתי עם הרעיון של סוגריים מסולסלות בפריימוורק YII ב PHP.

                /**
                 * {@inheritdoc}
                 */
                public static function tableName()
                {
                    return '{{%myTable}}';
                }
            

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

            י תגובה 1 תגובה אחרונה
            0
            • י מנותק
              י מנותק
              יוסף בן שמעון
              כתב ב נערך לאחרונה על ידי
              #6

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

              י תגובה 1 תגובה אחרונה
              2
              • י מנותק
                י מנותק
                יוסף בן שמעון
                השיב לחוקר ב נערך לאחרונה על ידי יוסף בן שמעון
                #7

                @חוקר סוגריים מסולסלות כפולות זה סטנדרט בתחום, כל הפריימוורקים שאני מכיר משתמשים בזה לשרשר משתנים בתוך מחרוזות

                תגובה 1 תגובה אחרונה
                1
                • י מנותק
                  י מנותק
                  יוסף בן שמעון
                  השיב ליוסף בן שמעון ב נערך לאחרונה על ידי
                  #8

                  @חוקר במחשבה שניה @WWW צודק, לא צריך להגדיר מראש את המשתנים, תן למשתמש לכתוב אותם בתוך סוגריים, ואתה תחלץ אותם עם חיפוש ותשמור אותם וגם תתן לו להגדיר אותם.

                  ח תגובה 1 תגובה אחרונה
                  2
                  • ח מנותק
                    ח מנותק
                    חוקר
                    השיב ליוסף בן שמעון ב נערך לאחרונה על ידי
                    #9

                    @יוסף-בן-שמעון
                    בינתיים בין כך הכל מבוצע על ידי [או ע"י עובד שלי], ולא ע"י הלקוחות עצמם, לכן לא כ"כ נבהלתי לעשות לפי התחביר שראיתי כאן
                    וזה התוצאה
                    ב"ה עבד כמו שצריך
                    d9cf5e53-f3b6-40df-982a-d371de2bbac9-image.png

                    תגובה 1 תגובה אחרונה
                    1

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

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

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