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

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

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

תתי הפניות ב express

מתוזמן נעוץ נעול הועבר תכנות
20 פוסטים 6 כותבים 415 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ח מנותק
    ח מנותק
    חוקר
    השיב ליוסף בן שמעון ב נערך לאחרונה על ידי
    #10

    @יוסף-בן-שמעון אמר בתתי הפניות ב express:

    @חוקר כמה הארות על הקוד שלך:

    1. אתה לא צריך לדאוג לקוד תגובה 200, ולא להידר Content-Type, אקספרס כבר עושה את העבודה השחורה הזו, תשתמש במתודה
    res.setHeader('Access-Control-Allow-Origin', '*')
    
    1. גם לא צריך להמיר את ה JSON למחרוזת, גם לזה אקספרס דואג, תעשה res.send(maslulim_to_api)

    3.לא צריך לנתח את ה URL בכל בקשה, אקספרס מגיש לך את זה מוכן כך: req.query.someQuery

    1. לדעתי מה שחסר לך זה לא ראוטינג אלא middleware אבל זה ניחוש, אם תפרט מה בדיוק הצורך שלך יהיה אפשר לדייק

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

    תגובה 1 תגובה אחרונה
    2
    • י מנותק
      י מנותק
      יוסף בן שמעון
      כתב ב נערך לאחרונה על ידי
      #11

      @חוקר אז אתה צריך middleware, כתוב כך:

      app.use('/ivr', (req, res, next)=>{
          res.setHeader('Access-Control-Allow-Origin', '*')
          if(someCondition) res.send("המערכת סגורה")
          else next()
      })
      app.use('/ivr/get_limud', (req, res)=>{
          res.send('לימוד יומי')
      })
      app.use('/ivr/get_maslul', (req, res)=>{
          res.send('מסלול')
      })
      
      

      כשאתה קורא לפונקציה next זה ממשיך הלאה לנתיבים הבאים, אם התקיים התנאי ולא קראת לה זה נעצר מיד

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

        @יוסף-בן-שמעון אמר בתתי הפניות ב express:

        @חוקר אז אתה צריך middleware, כתוב כך:

        נראה לי שזה אכן מה שהייתי צריך!
        תודה

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

          @יוסף-בן-שמעון אמר בתתי הפניות ב express:

          if(someCondition) res.send("המערכת סגורה")
          else next()

          לשם ההבנה, למה עשית את זה בתוך תנאי? כי ממ"נ אם אני עושה send או end זה אמור לסיים את הריצה, לא?

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

            @חוקר אמר בתתי הפניות ב express:

            @יוסף-בן-שמעון אמר בתתי הפניות ב express:

            if(someCondition) res.send("המערכת סגורה")
            else next()

            לשם ההבנה, למה עשית את זה בתוך תנאי? כי ממ"נ אם אני עושה send או end זה אמור לסיים את הריצה, לא?

            כי אתה לא רוצה לסיים את ההתקשרות אם המערכת פתוחה.

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

              @אהרן אמר בתתי הפניות ב express:

              כי אתה לא רוצה לסיים את ההתקשרות אם המערכת פתוחה.

              אכן
              התכוונתי לשאול בעיקר החלק השני, שלכאורה החלק של

              else next()
              

              מיותר

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

                @חוקר אמר בתתי הפניות ב express:

                @אהרן אמר בתתי הפניות ב express:

                כי אתה לא רוצה לסיים את ההתקשרות אם המערכת פתוחה.

                אכן
                התכוונתי לשאול בעיקר החלק השני, שלכאורה החלק של

                else next()
                

                מיותר

                אלא א"כ כפי שהוא כתב מקודם:
                כשאתה קורא לפונקציה next זה ממשיך הלאה לנתיבים הבאים, אם התקיים התנאי ולא קראת לה זה נעצר מיד

                א תגובה 1 תגובה אחרונה
                0
                • א מנותק
                  א מנותק
                  אהרן
                  השיב לחוקר ב נערך לאחרונה על ידי
                  #17

                  @חוקר אמר בתתי הפניות ב express:

                  @חוקר אמר בתתי הפניות ב express:

                  @אהרן אמר בתתי הפניות ב express:

                  כי אתה לא רוצה לסיים את ההתקשרות אם המערכת פתוחה.

                  אכן
                  התכוונתי לשאול בעיקר החלק השני, שלכאורה החלק של

                  else next()
                  

                  מיותר

                  אלא א"כ כפי שהוא כתב מקודם:
                  כשאתה קורא לפונקציה next זה ממשיך הלאה לנתיבים הבאים, אם התקיים התנאי ולא קראת לה זה נעצר מיד

                  נו
                  אתה שואל אם הוא צודק?

                  אגב, אפשר לעשות גם כך

                  app.get('/ivr/get_limud', func1, func2)
                  
                  function func1(req, res, next) {
                          //.....
                          next();
                  }
                  
                  function func(req, res) {
                          res.end('finish')
                  }
                  

                  זה לא מתאים לדוגמא הספציפית אבל דומה

                  תגובה 1 תגובה אחרונה
                  2
                  • ח מנותק
                    ח מנותק
                    חוקר
                    כתב ב נערך לאחרונה על ידי חוקר
                    #18

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

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

                      @חוקר אמר בתתי הפניות ב express:

                      @אהרן אמר בתתי הפניות ב express:

                      כי אתה לא רוצה לסיים את ההתקשרות אם המערכת פתוחה.

                      אכן
                      התכוונתי לשאול בעיקר החלק השני, שלכאורה החלק של

                      else next()
                      

                      מיותר

                      כשאתה קורא ל res.end() אתה לא עוצר את הריצה של הפונקציה, אתה מסיים את התקשורת עם הקליינט, הפונקציה עצמה ממשיכה לרוץ, זה שני דברים שונים.
                      תנסה לדוגמא כך:

                      res.end();
                      console.log("res is ended");
                      

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

                      res.end()
                      res.write("hello")
                      

                      תקבל שגיאה שהתקשורת כבר נסגרה ואז הפונקציה תכשל בגלל השגיאה.

                      אז אם לא תשים את זה בתוך else מה שיקרה שהפונקציה תמשיך ותקרא לשאר הנתיבים גם אם התקשורת כבר נסגרה, וזה יפלוט שגיאה.

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

                        @יוסף-בן-שמעון אמר בתתי הפניות ב express:

                        כשאתה קורא ל res.end() אתה לא עוצר את הריצה של הפונקציה, אתה מסיים את התקשורת עם הקליינט, הפונקציה עצמה ממשיכה לרוץ, זה שני דברים שונים.

                        מאה אחוז!
                        תודה על הלימוד

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

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

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

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