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

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

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

תתי הפניות ב express

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

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

    app.all('/',(req,res) => {
        res.writeHead(200, {'Content-Type': 'application/json; charset=utf-8', 'Access-Control-Allow-Origin' : '*'});
        var query = url.parse(req.url,true).query;
        if (maslulim_to_api && maslulim_to_api !== {}) {
            maslulim_to_api['status'] = 'OK';
        }
        app.all('/get_limud_yomi2',(req,res) => {
            var query = url.parse(req.url,true).query;
            res.end(JSON.stringify(maslulim_to_api));
    
        });
        app.all('/get_maslulim',(req,res) => {
            var query = url.parse(req.url,true).query;
            res.end(JSON.stringify(limud));
    
        });
        //console.log(maslulim_to_api);
    });
    
    upsilon01U א 2 תגובות תגובה אחרונה
    1
    • ח חוקר

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

      app.all('/',(req,res) => {
          res.writeHead(200, {'Content-Type': 'application/json; charset=utf-8', 'Access-Control-Allow-Origin' : '*'});
          var query = url.parse(req.url,true).query;
          if (maslulim_to_api && maslulim_to_api !== {}) {
              maslulim_to_api['status'] = 'OK';
          }
          app.all('/get_limud_yomi2',(req,res) => {
              var query = url.parse(req.url,true).query;
              res.end(JSON.stringify(maslulim_to_api));
      
          });
          app.all('/get_maslulim',(req,res) => {
              var query = url.parse(req.url,true).query;
              res.end(JSON.stringify(limud));
      
          });
          //console.log(maslulim_to_api);
      });
      
      upsilon01U מנותק
      upsilon01U מנותק
      upsilon01
      כתב ב נערך לאחרונה על ידי
      #2

      @חוקר
      א"א
      תעשה הפניה חדשה

      למה זה נצרך לך?

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

        אפשר אבל זה ממש לא עושה מה שאתה רוצה.
        תסביר בדיוק מה אתה רוצה לעשות.

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

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

          app.all('/',(req,res) => {
              res.writeHead(200, {'Content-Type': 'application/json; charset=utf-8', 'Access-Control-Allow-Origin' : '*'});
              var query = url.parse(req.url,true).query;
              if (maslulim_to_api && maslulim_to_api !== {}) {
                  maslulim_to_api['status'] = 'OK';
              }
              app.all('/get_limud_yomi2',(req,res) => {
                  var query = url.parse(req.url,true).query;
                  res.end(JSON.stringify(maslulim_to_api));
          
              });
              app.all('/get_maslulim',(req,res) => {
                  var query = url.parse(req.url,true).query;
                  res.end(JSON.stringify(limud));
          
              });
              //console.log(maslulim_to_api);
          });
          
          א מנותק
          א מנותק
          אהרן
          כתב ב נערך לאחרונה על ידי
          #4

          @חוקר
          https://internet-israel.com/מדריכים/express/express-js-ראוטר-בסיסי/

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

            אפשר אבל זה ממש לא עושה מה שאתה רוצה.
            תסביר בדיוק מה אתה רוצה לעשות.

            upsilon01U מנותק
            upsilon01U מנותק
            upsilon01
            כתב ב נערך לאחרונה על ידי
            #5

            @dovid

            מה הכוונה אפשר?
            מה יקרה?

            dovidD תגובה 1 תגובה אחרונה
            0
            • upsilon01U upsilon01

              @dovid

              מה הכוונה אפשר?
              מה יקרה?

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

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

              @dovid

              מה הכוונה אפשר?
              מה יקרה?

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

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

                שייך בצורה יותר מסודרת.
                עיין פה

                https://expressjs.com/en/4x/api.html#router

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                      1. לדעתי מה שחסר לך זה לא ראוטינג אלא middleware אבל זה ניחוש, אם תפרט מה בדיוק הצורך שלך יהיה אפשר לדייק
                      ח מנותק
                      ח מנותק
                      חוקר
                      כתב ב נערך לאחרונה על ידי
                      #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
                        • י יוסף בן שמעון

                          @חוקר אז אתה צריך 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 זה ממשיך הלאה לנתיבים הבאים, אם התקיים התנאי ולא קראת לה זה נעצר מיד

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

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

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

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

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

                            @חוקר אז אתה צריך 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 זה ממשיך הלאה לנתיבים הבאים, אם התקיים התנאי ולא קראת לה זה נעצר מיד

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                                else next()
                                

                                מיותר

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

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

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

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

                                  else next()
                                  

                                  מיותר

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

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

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

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

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

                                  else next()
                                  

                                  מיותר

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

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

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

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

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

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

                                    else next()
                                    

                                    מיותר

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

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

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

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

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

                                        else next()
                                        

                                        מיותר

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

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

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

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

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

                                        else next()
                                        

                                        מיותר

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

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

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

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

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

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

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

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

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

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

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

                                          else next()
                                          

                                          מיותר

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

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

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

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

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

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

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

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

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

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

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


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

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

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