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

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

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

עזרה בהעלאת קבצים לשרת ב node js

מתוזמן נעוץ נעול הועבר תכנות
25 פוסטים 8 כותבים 696 צפיות 7 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • yossizY yossiz

    כמה נקודות שצריך לשים לב להם:
    א) multer הוא middleware. ולכן זה לא פוקציה שאתה קורא בעצמך. אלא זה שלב עיבוד שאתה מכניס לשרשרת המטפלים/מעבדים בבקשה. אקספרס כבר ידאוג לקרוא לו בשלב המתאים. לכן הורדתי את הקריאה הידנית לפונקציה ובמקום זה הוספתי אותו בקובץ routes.js.
    ב) באקספרס זה עובד ככה, שה-body בברירת מחדל נשאר ריק (או בעצם לא קיימת - undefined), וזה התפקיד של ה-middlewares לעבד את המידע ה"לא מבושלת" שה-body מכיל, ולהכניס את התוצאה ה"מבושלת" ל-req.body.
    ה-middleware של multer לוקח את הקובץ ומכניס אותו ל-req.file - לא ל-req.body. רק אם יש שדות נוספות ב-body הם יוכנסו ל-req.body. אחרת ה-body נשאר ריק.
    ג) כמו שאמרתי מקודם, שיניתי את המינימום כדי שהפרוייקט יעבוד. אני לא בטוח שעכשיו הכל מסודר בצורה מיטבית. אבל "תן ולחכם ויחכם עוד".

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

    @yossiz זה עובד לי אני לא מאמינה כמעט התייאשתי....
    שוב תודה רבה!

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

      כמה נקודות שצריך לשים לב להם:
      א) multer הוא middleware. ולכן זה לא פוקציה שאתה קורא בעצמך. אלא זה שלב עיבוד שאתה מכניס לשרשרת המטפלים/מעבדים בבקשה. אקספרס כבר ידאוג לקרוא לו בשלב המתאים. לכן הורדתי את הקריאה הידנית לפונקציה ובמקום זה הוספתי אותו בקובץ routes.js.
      ב) באקספרס זה עובד ככה, שה-body בברירת מחדל נשאר ריק (או בעצם לא קיימת - undefined), וזה התפקיד של ה-middlewares לעבד את המידע ה"לא מבושלת" שה-body מכיל, ולהכניס את התוצאה ה"מבושלת" ל-req.body.
      ה-middleware של multer לוקח את הקובץ ומכניס אותו ל-req.file - לא ל-req.body. רק אם יש שדות נוספות ב-body הם יוכנסו ל-req.body. אחרת ה-body נשאר ריק.
      ג) כמו שאמרתי מקודם, שיניתי את המינימום כדי שהפרוייקט יעבוד. אני לא בטוח שעכשיו הכל מסודר בצורה מיטבית. אבל "תן ולחכם ויחכם עוד".

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

      @yossiz אמר בעזרה בהעלאת קבצים לשרת ב node js:

      באקספרס זה עובד ככה, שה-body בברירת מחדל נשאר ריק (או בעצם לא קיימת - undefined)

      רק אם זה נשלח כ form-data.

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

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

        @yossiz אמר בעזרה בהעלאת קבצים לשרת ב node js:

        באקספרס זה עובד ככה, שה-body בברירת מחדל נשאר ריק (או בעצם לא קיימת - undefined)

        רק אם זה נשלח כ form-data.

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

        @ב-ל אתה שואל או קובע?
        (נראה לי שאקפרס לא מפרסר שום body ישר מהקופסה. צריך להוסיף middleware של bodyparser)

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

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

          @ב-ל אתה שואל או קובע?
          (נראה לי שאקפרס לא מפרסר שום body ישר מהקופסה. צריך להוסיף middleware של bodyparser)

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

          @yossiz אמר בעזרה בהעלאת קבצים לשרת ב node js:

          (נראה לי שאקפרס לא מפרסר שום body ישר מהקופסה. צריך להוסיף middleware של bodyparser)

          כיום זה מובנה באקספרס

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

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

            @yossiz אמר בעזרה בהעלאת קבצים לשרת ב node js:

            (נראה לי שאקפרס לא מפרסר שום body ישר מהקופסה. צריך להוסיף middleware של bodyparser)

            כיום זה מובנה באקספרס

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

            @ב-ל
            התיעוד אומר אחרת

            Contains key-value pairs of data submitted in the request body. By default, it is undefined, and is populated when you use body-parsing middleware such as express.json() or express.urlencoded().

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

            רפאלר ב 2 תגובות תגובה אחרונה
            2
            • yossizY yossiz

              @ב-ל
              התיעוד אומר אחרת

              Contains key-value pairs of data submitted in the request body. By default, it is undefined, and is populated when you use body-parsing middleware such as express.json() or express.urlencoded().

              רפאלר מנותק
              רפאלר מנותק
              רפאל
              כתב ב נערך לאחרונה על ידי
              #21
              פוסט זה נמחק!
              תגובה 1 תגובה אחרונה
              0
              • yossizY yossiz

                @ב-ל
                התיעוד אומר אחרת

                Contains key-value pairs of data submitted in the request body. By default, it is undefined, and is populated when you use body-parsing middleware such as express.json() or express.urlencoded().

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

                @yossiz
                https://stackoverflow.com/questions/66525078/bodyparser-is-deprecated

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

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

                  @yossiz
                  https://stackoverflow.com/questions/66525078/bodyparser-is-deprecated

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

                  @ב-ל תודה. מעניין א) למה אני לא מקבל אזהרה זו, ב) למה זה לא משתקף בתיעוד שלהם?

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

                  מוטי אורןמ תגובה 1 תגובה אחרונה
                  2
                  • yossizY yossiz

                    @ב-ל תודה. מעניין א) למה אני לא מקבל אזהרה זו, ב) למה זה לא משתקף בתיעוד שלהם?

                    מוטי אורןמ מנותק
                    מוטי אורןמ מנותק
                    מוטי אורן
                    כתב ב נערך לאחרונה על ידי מוטי אורן
                    #24

                    @yossiz זה בדיוק מה שכתוב בתיעוד שלהם.
                    בשביל להבהיר את מה ש @ב-ל כתב, אקספרס עדיין לא מפרסר מהקופסה שום דבר. הדבר היחיד שהשתנה הוא שהמידלוורס של bodyparser מובנים באקספרס, ואין עניין להתקין שום מודול חיצוני בשביל זה. אני מצטט מהתיעוד:

                    req.body

                    Contains key-value pairs of data submitted in the request body. By default, it is undefined, and is populated when you use body-parsing middleware such as express.json() or express.urlencoded().

                    המידלוורס החדשים שנוספו באקספרס 4 הם:

                    app.use(express.json()); // מפרסר application/json
                    app.use(express.urlencoded()); // מפרסר application/x-www-form-urlencoded
                    
                    yossizY תגובה 1 תגובה אחרונה
                    5
                    • מוטי אורןמ מוטי אורן

                      @yossiz זה בדיוק מה שכתוב בתיעוד שלהם.
                      בשביל להבהיר את מה ש @ב-ל כתב, אקספרס עדיין לא מפרסר מהקופסה שום דבר. הדבר היחיד שהשתנה הוא שהמידלוורס של bodyparser מובנים באקספרס, ואין עניין להתקין שום מודול חיצוני בשביל זה. אני מצטט מהתיעוד:

                      req.body

                      Contains key-value pairs of data submitted in the request body. By default, it is undefined, and is populated when you use body-parsing middleware such as express.json() or express.urlencoded().

                      המידלוורס החדשים שנוספו באקספרס 4 הם:

                      app.use(express.json()); // מפרסר application/json
                      app.use(express.urlencoded()); // מפרסר application/x-www-form-urlencoded
                      
                      yossizY מנותק
                      yossizY מנותק
                      yossiz
                      כתב ב נערך לאחרונה על ידי
                      #25

                      @מוטי-אורן תודה רבה 🙂
                      לא שמתי לב למה שאני בעצמי ציטטתי 🙂

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

                      תגובה 1 תגובה אחרונה
                      4
                      • dovidD dovid העביר נושא זה מ-תכנות ב-
                      תגובה
                      • תגובה כנושא
                      התחברו כדי לפרסם תגובה
                      • מהישן לחדש
                      • מהחדש לישן
                      • הכי הרבה הצבעות


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

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

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