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

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

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

עזרה בnode.js/ express

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

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

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

    yossizY dovidD 2 תגובות תגובה אחרונה
    0
    • ב ב.ל

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

      yossizY מנותק
      yossizY מנותק
      yossiz
      כתב ב נערך לאחרונה על ידי yossiz
      #2

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

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

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

      ב תגובה 1 תגובה אחרונה
      1
      • yossizY yossiz

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

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

        ב מנותק
        ב מנותק
        ב.ל
        כתב ב נערך לאחרונה על ידי
        #3

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

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

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

        לא הבנתי

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

        yossizY תגובה 1 תגובה אחרונה
        0
        • ב ב.ל

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

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

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

          לא הבנתי

          yossizY מנותק
          yossizY מנותק
          yossiz
          כתב ב נערך לאחרונה על ידי yossiz
          #4

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

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

          תגובה 1 תגובה אחרונה
          1
          • ב ב.ל

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

            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
            • dovidD dovid

              @ב-ל יש בקוד שלך שני שורות,
              בשורה הראשונה אתה יוצר זרם קריאה מקובץ טקסט (יש לך פה סיכון אבטחה קטן פה - המשתמש יכול לקרוא כל קובץ טקסט בכל המחשב שלך עם שימוש בקומבינות של ../ )
              כעת בסוף השורה אתה מעביר את הזרם של הקריאה בשלמותו לתשובה לדפדפן (בלי שום רנדור של תבנית). אני מניח שזה שארית מהמצב ללא רנדור תבנית כי עם רנדור תבנית זה לא הגיוני, אז תדאג למחוק את זה: .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});
              });
              
              yossizY מנותק
              yossizY מנותק
              yossiz
              כתב ב נערך לאחרונה על ידי 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
              • dovidD dovid

                @ב-ל יש בקוד שלך שני שורות,
                בשורה הראשונה אתה יוצר זרם קריאה מקובץ טקסט (יש לך פה סיכון אבטחה קטן פה - המשתמש יכול לקרוא כל קובץ טקסט בכל המחשב שלך עם שימוש בקומבינות של ../ )
                כעת בסוף השורה אתה מעביר את הזרם של הקריאה בשלמותו לתשובה לדפדפן (בלי שום רנדור של תבנית). אני מניח שזה שארית מהמצב ללא רנדור תבנית כי עם רנדור תבנית זה לא הגיוני, אז תדאג למחוק את זה: .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});
                });
                
                ב מנותק
                ב מנותק
                ב.ל
                כתב ב נערך לאחרונה על ידי
                #7

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

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

                י 2 תגובות תגובה אחרונה
                0
                • ב ב.ל

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

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

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

                  רק readFile עובד

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

                  dovidD תגובה 1 תגובה אחרונה
                  1
                  • ב ב.ל

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

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

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

                    תגובה 1 תגובה אחרונה
                    3
                    • י יוסף בן שמעון

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

                      רק readFile עובד

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

                      dovidD מנותק
                      dovidD מנותק
                      dovid
                      ניהול
                      כתב ב נערך לאחרונה על ידי
                      #10

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

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

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

                      • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                      • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                      yossizY תגובה 1 תגובה אחרונה
                      3
                      • dovidD dovid

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

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

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

                        yossizY מנותק
                        yossizY מנותק
                        yossiz
                        כתב ב נערך לאחרונה על ידי
                        #11

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

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

                        אני סקפטי...

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

                        dovidD תגובה 1 תגובה אחרונה
                        0
                        • yossizY yossiz

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

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

                          אני סקפטי...

                          dovidD מנותק
                          dovidD מנותק
                          dovid
                          ניהול
                          כתב ב נערך לאחרונה על ידי
                          #12

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

                          • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                          • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                          yossizY תגובה 1 תגובה אחרונה
                          0
                          • dovidD dovid

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

                            yossizY מנותק
                            yossizY מנותק
                            yossiz
                            כתב ב נערך לאחרונה על ידי
                            #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 dovid

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

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

                                dovidD מנותק
                                dovidD מנותק
                                dovid
                                ניהול
                                כתב ב נערך לאחרונה על ידי dovid
                                #15

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

                                • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                                • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                                yossizY תגובה 1 תגובה אחרונה
                                5
                                • dovidD dovid

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

                                  yossizY מנותק
                                  yossizY מנותק
                                  yossiz
                                  כתב ב נערך לאחרונה על ידי
                                  #16

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

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

                                  תגובה 1 תגובה אחרונה
                                  2
                                  תגובה
                                  • תגובה כנושא
                                  התחברו כדי לפרסם תגובה
                                  • מהישן לחדש
                                  • מהחדש לישן
                                  • הכי הרבה הצבעות


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

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

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