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

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

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

תחביר הצבת נתונים לאובייקט JS

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

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

        UpDateQuestionsAndAnswers :function() {
            return database.selectSQL('SELECT * FROM `QuestionsAndAnswers`').then(function (QuestionsAndAnswers) {
                this['QuestionsAndAnswers'] = {};
                for (let i in QuestionsAndAnswers) {
                    if (!this['QuestionsAndAnswers'][QuestionsAndAnswers[i]['UserId']]){
                        this['QuestionsAndAnswers'][QuestionsAndAnswers[i]['UserId']] = {};
                    }
                    this['QuestionsAndAnswers'][QuestionsAndAnswers[i]['UserId']][QuestionsAndAnswers[i].id] = QuestionsAndAnswers[i];
                }
            }).catch(error => {
                console.error(error);
            });
        },
    

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

    תגובה 1 תגובה אחרונה
    0
    • MusiCodeM מנותק
      MusiCodeM מנותק
      MusiCode
      כתב ב נערך לאחרונה על ידי MusiCode
      #2

      מה שאני חושב (ועשיתי אצלי) זה להשתמש בORM.
      מה זה?

      זה פריימוורק שיוצר אובייקטים לכל טבלה, וכך אתה פשוט מתנהל מול האובייקט.

      אובייקט יוזר, יש לו מתודה של חפש יוזר, תביא את כל היוזרים, עדכן יוזר, וכו.

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

      זה ייקח זמן (וללמוד... בכלל), אבל אח"כ הכל ירוץ.
      במקום לכתוב שאילתות כל הזמן, אתה פשוט עושה אינטואטיבית: יוזר->חפש אחד-> השם שלו מתחיל ב-מ'.

      קבל דוגמא מפרוייקט שלי (אגב אני בנוד חודש ומשהו, אל תבהל. לא קשה כזה):
      שרת API: קבלת מפתח, והמרה שלו למשתמש:

      router.post("/get_name", async (req, res) => {
      
      	let user = await User.findOne({ where: { key: req.body.key } });
      
      	if (!user) {
      		res.result.massage = "key does not exist";
      		res.json(res.result);
      	} else {
      		res.user = user;
      		next();
      	}
      
      });
      

      כמה קל להתנהל מול הDB!
      שורת קוד אחת!...

      אני משתמש ב https://sequelize.org/.

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

        @MusiCode אמר בתחביר הצבת נתונים לאובייקט JS:

        מה שאני חושב (ועשיתי אצלי) זה להשתמש בORM.

        מוכר קצת, אני משתמש ב https://underscorejs.or
        לעבוד עם מודולים אמיתיים מידי יקר עבורי..
        אז באמת אני שם לב כעת שיש כאן אפשרות של indexBy.
        אבל זה לא פותר כשאני צריך אינדקס בתוך אינדקס.

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

          @חוקר אמר בתחביר הצבת נתונים לאובייקט JS:

          אבל זה לא פותר כשאני צריך אינדקס בתוך אינדקס.

          ?

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

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

            תגובה 1 תגובה אחרונה
            0
            • MusiCodeM מנותק
              MusiCodeM מנותק
              MusiCode
              כתב ב נערך לאחרונה על ידי
              #6

              אא"ט, זה אפשרי בתחביר המובנה של הפריימוורק.

              אתה צריך להגדיר קישור בין המפתח, לטבלה שהמפתח הוא הID שלה,
              ואז יש אפשרות שהפריימוורק יתן לך כבר בתוך כל אובייקט, את אובייקט הבן.

              לא מוצא את זה, אבל במה שהבאתי מקודם, בבירור יש את זה.

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

                @MusiCode אמר בתחביר הצבת נתונים לאובייקט JS:

                אא"ט, זה אפשרי בתחביר המובנה של הפריימוורק.

                כנראה התכוונת אאל"ט.
                במה שאתה משתמש ניתן לקרוא פריימוורק, מה שאני משתמש זה מחלקה.

                בכל מקרה ניתן כנראה לקמבן אבל א"כ כבר ניתן בקלות יותר לעשות כמו שעשיתי עד היום, כמה מסובך ככה פשוט

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

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

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

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