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

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

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

שאלות של מתחיל - מקצועי ב nodejs

מתוזמן נעוץ נעול הועבר תכנות
72 פוסטים 8 כותבים 3.3k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • י מנותק
    י מנותק
    יוסף בן שמעון
    השיב לחוקר ב נערך לאחרונה על ידי יוסף בן שמעון
    #18

    @חוקר אמר בשאלות של מתחיל - מקצועי ב nodejs:

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

    אתה יכול במקום לכתוב

    res.text()
    

    להחליף ל

    res.json()
    

    ואז בפונקציה השניה אתה מקבל את הbody כ JSON
    אגב יש מודול יותר פופולרי לבקשות משרתים מרוחקים, קוראים לו request, אתה יכול להתקין כך

    npm i request
    

    ולהשתמש כך:

    var request = require('request');
    
    app.get('/page', (req, res)=>{
        request('https://github.com/', (err, response, body)=>{
            body = JSON.parse(body);
            if(body.status == "ok") res.send("ok")
            else res.send("no")
        })
    })
    
    
    ח תגובה 1 תגובה אחרונה
    4
    • ח מנותק
      ח מנותק
      חוקר
      השיב ליוסף בן שמעון ב נערך לאחרונה על ידי
      #19

      @יוסף-בן-שמעון
      מצאתי את מה שרציתי..
      https://www.npmjs.com/package/sync-request

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

        @חוקר אתה ממש ממש טועה.
        אתה מנסה לכופף את האוטו ללמוד לעבוד עם סוסים, היחיד שמפסיד זה אתה.
        היית יכול להכביר בשאלות, נענה לך בל"נ על הכל, רק אל תכפיף את המנטליות של nodejs האסינכרונית להרגלים שלך (אני גם השתגעתי, מבטיח לך).

        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

        בכל נושא אפשר ליצור קשר dovid@tchumim.com

        ח תגובה 1 תגובה אחרונה
        7
        • M מנותק
          M מנותק
          magicode
          כתב ב נערך לאחרונה על ידי
          #21

          מצטרף ל @dovid צא מהקופסא!!!

          תגובה 1 תגובה אחרונה
          7
          • י מנותק
            י מנותק
            יוסף בן שמעון
            כתב ב נערך לאחרונה על ידי
            #22
            פוסט זה נמחק!
            תגובה 1 תגובה אחרונה
            0
            • ח מנותק
              ח מנותק
              חוקר
              השיב לdovid ב נערך לאחרונה על ידי
              #23

              @dovid אמר בשאלות של מתחיל - מקצועי ב nodejs:

              @חוקר אתה ממש ממש טועה.
              אתה מנסה לכופף את האוטו ללמוד לעבוד עם סוסים, היחיד שמפסיד זה אתה.
              היית יכול להכביר בשאלות, נענה לך בל"נ על הכל, רק אל תכפיף את המנטליות של nodejs האסינכרונית להרגלים שלך (אני גם השתגעתי, מבטיח לך).

              דבר ראשון אני צריך משהו שעובד..
              אח"כ נוכל להמשיך...

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

                @חוקר אמר בשאלות של מתחיל - מקצועי ב nodejs:

                @dovid אמר בשאלות של מתחיל - מקצועי ב nodejs:

                @חוקר אתה ממש ממש טועה.
                אתה מנסה לכופף את האוטו ללמוד לעבוד עם סוסים, היחיד שמפסיד זה אתה.
                היית יכול להכביר בשאלות, נענה לך בל"נ על הכל, רק אל תכפיף את המנטליות של nodejs האסינכרונית להרגלים שלך (אני גם השתגעתי, מבטיח לך).

                דבר ראשון אני צריך משהו שעובד..
                אח"כ נוכל להמשיך...

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

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

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

                  מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                  בכל נושא אפשר ליצור קשר dovid@tchumim.com

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

                    @dovid
                    מה היא הדרך הכי טובה להפעיל את השרת ע"י SSH שהתהליך לא יסתיים לאחר סגירת החלון, ומצד שני שניתן יהיה כל הזמן לעדכן ולהריץ שינויים?
                    תודה

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

                      @חוקר
                      http://pm2.keymetrics.io/docs/usage/quick-start/

                      אין טסט כמו פרודקשן.

                      המייל שלי urivpn@gmail.com

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

                        C9 יקל עליך מאוד את החיים, אם אתה אוחז שמה אתן לך הוראות מה לעשות שם.

                        מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                        בכל נושא אפשר ליצור קשר dovid@tchumim.com

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

                          שים לב, כוונתי היא לא הC9 הישן שהוא בתשלום, אלא Cloud9 שזה C9 בחינם של אמזון (הם רכשו אותם).
                          https://aws.amazon.com/cloud9/
                          בהצלחה.

                          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                          בכל נושא אפשר ליצור קשר dovid@tchumim.com

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

                            @חוקר אמר בשאלות של מתחיל - מקצועי ב nodejs:

                            מה היא הדרך הכי טובה להפעיל את השרת ע"י SSH שהתהליך לא יסתיים לאחר סגירת החלון, ומצד שני שניתן יהיה כל הזמן לעדכן ולהריץ שינויים?

                            התשובה הנכונה לזה הוא להשתמש ב-tmux. גם c9 משתמש ב-tmux.

                            sudo apt install tmux
                            tmux
                            ... #תריץ  תהליכים
                             #יציאה
                            ... #כניסה מחדש
                            tmux attach #התהליכים עדיין רצים (לא ברקע אלא מקדימה)
                            

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

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

                              @yossiz אמר בשאלות של מתחיל - מקצועי ב nodejs:

                              @חוקר אמר בשאלות של מתחיל - מקצועי ב nodejs:

                              מה היא הדרך הכי טובה להפעיל את השרת ע"י SSH שהתהליך לא יסתיים לאחר סגירת החלון, ומצד שני שניתן יהיה כל הזמן לעדכן ולהריץ שינויים?

                              התשובה הנכונה לזה הוא להשתמש ב-tmux. גם c9 משתמש ב-tmux.

                              sudo apt install tmux
                              tmux
                              ... #תריץ  תהליכים
                               #יציאה
                              ... #כניסה מחדש
                              tmux attach #התהליכים עדיין רצים (לא ברקע אלא מקדימה)
                              

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

                              dovidD yossizY 2 תגובות תגובה אחרונה
                              2
                              • dovidD מנותק
                                dovidD מנותק
                                dovid ניהול
                                השיב ליוסף בן שמעון ב נערך לאחרונה על ידי
                                #32

                                @יוסף-בן-שמעון הוא התייחס לתחילת השאלה (מה היא הדרך הכי טובה להפעיל את השרת ע"י SSH שהתהליך לא יסתיים לאחר סגירת החלון), ולא לנוד.

                                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                בכל נושא אפשר ליצור קשר dovid@tchumim.com

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

                                  @יוסף-בן-שמעון אמר בשאלות של מתחיל - מקצועי ב nodejs:

                                  לא מכיר, אבל זה נראה משהו בסגנון screen,

                                  כן, גירסא יותר מודרנית ל-screen.
                                  אני הבנתי מלשון השאילה שאם היה לו דרך להשאיר את התהליך בקידמה גם אחרי סגירת החלון, אז הוא היה מסתדר עם השינויים ועדכונים.

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

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

                                    @חוקר

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

                                    אני מצרף דוגמא.

                                    
                                    const fetch = require('node-fetch');
                                    const express = require("express");
                                    const http = require('http');
                                    
                                    const app = express();
                                    const server = http.createServer(app);
                                    
                                    var amountDonate = "";
                                    
                                    setInterval(x => {
                                       fetch('https://www.charidy.com/some/api')
                                        .then(res => res.json())
                                        .then(json => {
                                            amountDonate = `id_list_message=t-עד כה תרמו.n-${json.amountDonate}.t-שקלים.`;
                                        }).catch(console.error); 
                                    },2000);
                                    
                                    app.all('/api/ivr/amount-donate',(req,res) => res.end(amountDonate));
                                        
                                    server.listen(+process.env.PORT , process.env.HOST);
                                    
                                    
                                    ח 3 תגובות תגובה אחרונה
                                    7
                                    • M מנותק
                                      M מנותק
                                      magicode
                                      השיב לyossiz ב נערך לאחרונה על ידי magicode
                                      #35

                                      @yossiz
                                      זה ממש לא שיטה נכונה להפעלת שרת
                                      השיטה הכי נכונה זה לעשות יחידת סרויס של systemd
                                      ואפשר לעשות את זה בקלות ע"י pm2

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

                                        @magicode
                                        ראשית כל תודה על הזמן שאתה נותן לי.
                                        הייתי שמח להבין את מה שכתבת:
                                        מה הוא ה setInterval וה x שהכנסת אליו, והסיומת 2000, כנראה הכוונה לפורט, אך לא הבנתי את כל התחביר כאן.
                                        כמו"כ בהטחה השניה .then(json => המשתנה json תמיד יהיה בעצם התשובה של ההבטחה הראשונה, לא משנה איזה שם אני תוקע שם?
                                        בכלל then ו catch, ניתן לעשות את זה תמיד בכל שרשור אם אני שם catch זה יחזיר לי את השגיאה בשל לפניו בלבד או שגיאה מהתחלה?
                                        התחביר של המחרוזת: אני רואה שהשתמש ב מה התקן שלו, מתי הוא משמש? מתי עדיף "" או '' או.
                                        כמו"כ אני רואה ששמת שם ${} את זה אני מכיר מPHP לקריאה למשתנה.
                                        זה תקף רק בתוך ה`` או בכל מקום?
                                        בקיצור אני לומד מתוך הדוגמה..
                                        תודה

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

                                          @חוקר אמר בשאלות של מתחיל - מקצועי ב nodejs:

                                          מה הוא ה setInterval וה x שהכנסת אליו, והסיומת 2000, כנראה הכוונה לפורט, אך לא הבנתי את כל התחביר כאן.

                                          שתהיה בריא, @magicode עונה לך על אריכטורה ואתה שואל שאלות בסיס-בסיסיות על פונקציות ותחביר שרק אזכור שלהם מעלה טרליון תשובות בגוגל?!
                                          נראה שבציטוט את זה אני מכיר מPHP שברח לך, הסברת הכל..

                                          לעצם הענין setIntervalמפעיל פונקציה שמעבירים אליו כארגומנט, בכל פרק זמן. בדוגמא כאן אתה יכול לראות ש setInterval קיבל 2 ארגומנטים 1 פונקציה 2 ערך 2000 שהוא ההפרש בין הפעלה להפעלה. במקרה הזה הפונקציה (ארגומנט 1) יופעל בכל 2000 מילי סקנד.

                                          כמו"כ בהטחה השניה .then(json => המשתנה json תמיד יהיה בעצם התשובה של ההבטחה הראשונה, לא משנה איזה שם אני תוקע שם?

                                          לא. של ההבטחה הקודמת.
                                          אסביר קצת יותר על הפרומיסס בכלל
                                          fetch('https://www.charidy.com/some/api') פשוט מכיל קוד (בערך)

                                          return promise(response)
                                          

                                          כלומר data עטופה בפרומיס, לכן

                                          fetch('https:...').then(res => res.json())
                                          

                                          שווה ל:

                                          promise.then(res => res.json())
                                          

                                          then הוא מתודה של promise
                                          then מקבל ארגומנט פונקציה (בדוגמא שלנו זו הפונקציה res => res.json()), אליה היא מעבירה את ה-DATA שהוכנס לתוך הפרומיס הנוכחי, בדוגמא שלנו הארגומנט שמכיל את ה-DATA שהוא בעצם התשובה שהתקבלה מהכתובת\האתר, הוא res (או כל שם אחר שנותנים לו).

                                          במקרה הזה, fetch מחזיר לנו את המידע יחד עם מתודות נוספות שמבצעות המרות שונות למידע, אחת מהם היא json שמבצעת המרה של המידע לפורמט json ושוב מחזירה אותו עטופה בפרומיס
                                          לכן לפונקציה שתכניס לתוך הthen השני יוכנס הDATA בתצורת json. כלומר

                                          .then(res => res.json()).then(json =>
                                          

                                          שווה ל

                                          newPromise.then( dataFormatJson => you code that can usedataFormatJson value)
                                          

                                          התחביר של המחרוזת: אני רואה שהשתמש ב מה התקן שלו, מתי הוא משמש? מתי עדיף "" או '' או.
                                          כמו"כ אני רואה ששמת שם ${}

                                          אתה יכול להרשות לעצמך להתעלם מסכמות חדשות ליצירת מחרוזות. תשתמש רגיל:

                                          "string" + value + "string"
                                          

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

                                          ח 2 תגובות תגובה אחרונה
                                          8

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

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

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