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

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

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

עזרה בnode.js/ express

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

    @ב-ל זה היה רק ניחוש. קודם נבדוק אם צדקתי ואז אני אסביר את דברי אם נשאר משהו לא ברור.
    האם אתה יכול לבדוק בכלי המפתחים את התשובה שקיבלת?
    04033b54-829f-486f-bde2-82a53051c928-image.png
    אני מצפה שתראה בתשובה את התוכן של הקובץ Messilat_yesharim.txt ומיד לאחריה את ה-HTML שמרונדר על ידי res.render.

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

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

      @ב-ל יש בקוד שלך שני שורות,
      בשורה הראשונה אתה יוצר זרם קריאה מקובץ טקסט (יש לך פה סיכון אבטחה קטן פה - המשתמש יכול לקרוא כל קובץ טקסט בכל המחשב שלך עם שימוש בקומבינות של ../ )
      כעת בסוף השורה אתה מעביר את הזרם של הקריאה בשלמותו לתשובה לדפדפן (בלי שום רנדור של תבנית). אני מניח שזה שארית מהמצב ללא רנדור תבנית כי עם רנדור תבנית זה לא הגיוני, אז תדאג למחוק את זה: .pipe(res)
      בשורה השניה אתה משתמש בתבנית ונותן לה אובייקט פרמטרים עם מאפיין namebooks שנלקח מפרמטר מהבקשה, ופרמטר text שבו אתה שם את אובייקט התשובה res, זה לא הגיוני.
      אני מניח שאתה רצית לעשות ככה:

      var fileStream = fs.createReadStream(...);
      res.render('books', {namebooks: req.params.name,  text: fileStream });
      

      אם זה לא עובד אני מניח שהמאפיין text לא אמור לקבל זרם אלא את הטקסט בעצמו שזה אומר לכתוב ככה:

      fs.readFile(..., function (err, data ) {
        res.render('books', {namebooks: req.params.name,  text: data});
      });
      

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

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

        @dovid אמר בעזרה בnode.js/ express:

        יש לך פה סיכון אבטחה קטן פה

        תודה שהערת את תשומת לבנו לנושא.
        למדתי עכשיו מהתיעוד ש-path.join כבר עושה נירמוליזציה לנתיב (הורדת . ו-.. מאמצע הנתיב) עכשיו נשאר רק לוודא שהנתיב מתחיל בתיקייה הנכונה.
        מקורות:

        • https://nodejs.org/api/path.html#path_path_join_paths
        • https://nodejs.org/en/knowledge/file-system/security/introduction/#preventing-directory-traversal

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

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

          @dovid
          תודה על התשובה המפורטת.
          אכן האפשרות של סטרים לא עובד
          זה מה שמופיע לי
          ‏‏לכידה 4.PNG
          רק readFile עובד

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

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

            @ב-ל אמר בעזרה בnode.js/ express:

            רק readFile עובד

            כמובן שבקבצים כבדים זה יגרום לדליפת זיכרון

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

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

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

                @יוסף-בן-שמעון אמר בעזרה בnode.js/ express:

                כמובן שבקבצים כבדים זה יגרום לדליפת זיכרון

                צריכת זיכרון גבוהה איננה "דליפת זיכרון" - https://www.hamichlol.org.il/דליפת_זיכרון
                אולי בנוד זה תמיד הולך ביחד, כלומר זה גורר את זה (יש לי חשש בלתי מבוסס בכיוון...).

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

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

                  @dovid אמר בעזרה בnode.js/ express:

                  אולי בנוד זה תמיד הולך ביחד, כלומר זה גורר את זה (יש לי חשש בלתי מבוסס בכיוון...).

                  אני סקפטי...

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

                  dovidD תגובה 1 תגובה אחרונה
                  0
                  • dovidD מנותק
                    dovidD מנותק
                    dovid ניהול
                    השיב לyossiz ב נערך לאחרונה על ידי
                    #12

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

                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                    בכל נושא אפשר ליצור קשר dovid@tchumim.com

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

                      @dovid אמר בעזרה בnode.js/ express:

                      @yossiz יש לך ניסיון עם צריכות זיכרון גבוהות?

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

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

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

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

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

                        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                        בכל נושא אפשר ליצור קשר dovid@tchumim.com

                        dovidD תגובה 1 תגובה אחרונה
                        6
                        • dovidD מנותק
                          dovidD מנותק
                          dovid ניהול
                          השיב לdovid ב נערך לאחרונה על ידי dovid
                          #15

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

                          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                          בכל נושא אפשר ליצור קשר dovid@tchumim.com

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

                            @dovid אני שומע, אם הדברים נכונים זה באמת בעיה למי ששוקל להשתמש בנוד עבור אתר עם צרכי uptime קריטיים. אין לי נסיון כלל בבעיות זכרון בנוד. אולי יום אחד אזכה...

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

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

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

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

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