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

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

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

עזרה בnode.js/ express

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

    אני מנסה להזרים קובץ טקסט לתוך תבנית html ללא הצלחה
    בלי תבנית זה כן עובד
    ‏‏לכידה1.PNG
    ‏‏לכידה2.PNG

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

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

      @ב-ל יש לי ניחוש שפונקציית res.render מגדיר את התשובה כ-text/html מה שגורם לדפדפן להתעלם מהחומר שלפני ה-<head>.
      תבדוק בכלי המפתחים.

      (אגב, יש עדיפות להדביק את הקוד כטקסט ולא כתמונה)

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

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

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

        @ב-ל יש לי ניחוש שפונקציית res.render מגדיר את התשובה כ-text/html מה שגורם לדפדפן להתעלם מהחומר שלפני ה-<head>.
        תבדוק בכלי המפתחים.

        (אגב, יש עדיפות להדביק את הקוד כטקסט ולא כתמונה)

        לא הבנתי

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

        yossizY תגובה 1 תגובה אחרונה
        0
        • 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
                                  • דף הבית
                                  • קטגוריות
                                  • פוסטים אחרונים
                                  • משתמשים
                                  • חיפוש
                                  • חוקי הפורום