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

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

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

שיתוף מידע בין ראוטרים ב express js

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

    @מוטי-אורן אמר בשיתוף מידע בין ראוטרים ב express js:

    module.exports = new Users();

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

    ליצירת קשר - baruchlamdan@gmail.com

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

      @ב-ל אמר בשיתוף מידע בין ראוטרים ב express js:

      אתה צריך להכניס את new Users לתוך משתנה ותייצא את המשתנה

      אאל"ט, מה שהוא עושה זהה לגמרי למה שאתה מציע. 🤔

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

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

        @yossiz אמר בשיתוף מידע בין ראוטרים ב express js:

        אאל"ט, מה שהוא עושה זהה לגמרי למה שאתה מציע. 🤔

        למה זה אותו דבר? הוא מייבא את הקלאס עם המערך ולא מאתחל אותו מחדש.

        ליצירת קשר - baruchlamdan@gmail.com

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

          @מוטי-אורן אמר בשיתוף מידע בין ראוטרים ב express js:

          module.exports = new Users();

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

          module.exports = Users;
          

          ותייבא לכל הראוטים כך:

          const Users = require('users');
          

          ב-app.js תיצור אובייקט מופע יחיד של המחלקה:

          const Users = require('users');
          
          const myUsers = new Users();
          

          ואותו myUsers תיצא לראוטים.

          תגובה 1 תגובה אחרונה
          2
          • yossizY מנותק
            yossizY מנותק
            yossiz
            השיב לב.ל ב נערך לאחרונה על ידי
            #6

            @ב-ל כמו"כ ב:

            module.exports = new Users();
            

            זה מייצר מופע אחד של הקלאס בפעם הראשון שהוא מייבא את הקובץ. בכל שאר הפעמים זה אמור להחזיר אותו מופע. קריאה של require לא מריצה שוב את הקובץ אחרי הפעם הראשון.

            @odeddvir אמר בשיתוף מידע בין ראוטרים ב express js:

            אתה יוצר בכל פעם מופע חדש

            לכאורה לא. כנ"ל. למה אני טועה?

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

            OdedDvirO מוטי אורןמ 2 תגובות תגובה אחרונה
            3
            • OdedDvirO מנותק
              OdedDvirO מנותק
              OdedDvir
              השיב לyossiz ב נערך לאחרונה על ידי
              #7

              @yossiz אמר בשיתוף מידע בין ראוטרים ב express js:

              למה אני טועה

              אתה לא. אני טעיתי מחוסר ניסיון, ולא ידעתי שמודולים בנוד הם Singletons. אלא מעתה גם אני סקרן למה @מוטי-אורן מקבל מופע חדש בכל פעם...

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

                @yossiz וגם @OdedDvir וואו איך לא חשבתי על זה.. אתם אומרים פשוט לצרוך את הקלאס פעם אחת ב app.js ואז לייצא את אותו קלאס לכל הראוטרים. טוב, קורה ששוכחים דברים בסיסיים. בכל מקרה, תודה רבה!

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

                yossizY chvC 2 תגובות תגובה אחרונה
                0
                • yossizY מנותק
                  yossizY מנותק
                  yossiz
                  השיב למוטי אורן ב נערך לאחרונה על ידי yossiz
                  #9

                  @מוטי-אורן אמר בשיתוף מידע בין ראוטרים ב express js:

                  אתם אומרים...

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

                  לא. אני אמרתי הפוך שזה לא אמור להיות בעיה ואני באמת עדיין לא מבין מה גרם לבעיה שלך (וגם @OdedDvir כנראה מסכים לדברים )

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

                  מוטי אורןמ תגובה 1 תגובה אחרונה
                  4
                  • מוטי אורןמ מנותק
                    מוטי אורןמ מנותק
                    מוטי אורן
                    השיב לyossiz ב נערך לאחרונה על ידי
                    #10

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

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

                    תגובה 1 תגובה אחרונה
                    1
                    • chvC מנותק
                      chvC מנותק
                      chv
                      השיב למוטי אורן ב נערך לאחרונה על ידי
                      #11

                      @מוטי-אורן אמר בשיתוף מידע בין ראוטרים ב express js:

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

                      זהו שלא, המודול נטען על ידי נוד פעם אחת בלבד ומאז הוא מוכנס למטמון (קאש) ומשם הוא נטען בכל פעם כשמבקשים אותו (require)
                      וזה מה שכתבו כאן.
                      ועי' https://nodejs.org/api/modules.html#modules_caching

                      בלוג | מייל

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

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

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

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