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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
י

יוסף בן שמעון

@יוסף בן שמעון
אודות
פוסטים
965
נושאים
99
קבוצות
0
עוקבים
5
עוקב אחרי
0

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • authentication ב - express
    י יוסף בן שמעון

    אל תשמור סיסמאות ב DB זה גם לא חוקי ועלול לחשוף אותך לתביעות אם המידע יזלוג החוצה, וגם בגלל האחריות כלפי הקליינט שמפקיד את הסיסמה שלו אצלך והוא לא היה רוצה שכל מי שיש לו גישה לשרת יראה את הסיסמה שלו. יש מחלקות בנוד שמגבבות סיסמאות, יש כאן כמה מדריכים לעבוד עם סיסמאות
    https://video-tov.ml/?tag=Passport.js&page=1


  • authentication ב - express
    י יוסף בן שמעון

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

    req.session.passport.user.name
    

  • authentication ב - express
    י יוסף בן שמעון

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


  • authentication ב - express
    י יוסף בן שמעון

    @מנצפך אמר בauthentication ב - express:

    לפרספורט אין מערכת סשנים עצמית, הוא צריך מערכת שדואגת לשמור את הסשנים, ובשלב האימות צריך לשלוף את מזהה הסשן, אתה צריך גם express-session וגם passport


  • תשלום לסוכן על סים
    י יוסף בן שמעון

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


  • שאלות מתקדמות ב nodejs
    י יוסף בן שמעון

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


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

    @חוקר עכשיו נפל לי האסימון (במסגרת 17 ההודעות שנותרו לאשכול...) כשאתה קורא ל res.end אתה אמור לעצור את הריצה של הפונקציה, היא לא אמורה להמשיך לרוץ, אתה צריך לכתוב כך

        if (!campaign_id || campaign_id === ''){
            return res.end("id_list_message=" + 't-לא הוגדר מספר קמפיין, לא ניתן לבצע פעולה זו.' + '&' + "go_to_folder=/" + 'hangup');
        }else{
            if (!campaigns_data[campaign_id]){
                return res.end("id_list_message=" + 't-קמפיין לא מורשה במערכת, לא ניתן לבצע פעולה זו.' + '&' + "go_to_folder=/" + 'hangup');
            } else{
                campaign_stats = campaigns_data[campaign_id];
            }
        }
        var total = campaign_stats.data.total;
    
    

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

    אולי תפתח אשכול חדש לכל נושא, זה מכביד 3 עמודים לנושא אחד...


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

    @חוקר זה לא קשור לאיך נוד קורא את הדף, זה פשוט משתנה שמעולם לא אותחל אז הוא undefind, אתה יכול לכתוב כך:

        var total = (campaign_stats && campaign_stats.data.total);
    
    

    זה יבדוק אם המשתנה קיים ואם לא הוא יחזיר מיד את הundifind ולא יכשיל את הפונקציה


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

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


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

    @חוקר תפרט קצת, מה הקליינט אמור לקבל, מידע אישי שלו או מידע כללי לכל הקמפיין? יש הרבה קמפיינים באויר או כמה אחדים? באיזו צורה הוא מזדהה, עם פרמטר ב GET או עוגיות?


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

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

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

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

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

    כל שתי שניות אתה מתעדכן מול צ'רדי בלי קשר לבקשות, ואתה שומר את המידע בזכרון (אחד המעלות הגדולות של נוד מול PHP!) וכשהקלינט שולח בקשה אתה שולף לו מיד מהזכרון את המידע האחרון שקיבלת מצ'רדי, כך הוא לא צריך להמתין למידע, והוא מקבל נתון שנכון לשתי שניות האחרונות


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

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

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

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

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

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

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


  • api ווקומורס cart
    י יוסף בן שמעון

    https://stackoverflow.com/questions/38546354/woocommerce-cookies-and-sessions-get-the-current-products-in-cart
    יש פה תיאור איך ווקומרס שומר את המוצרים בדאטבייס, אולי זה יקדם אותך במשהו


  • דחוף מאוד - מסגרת לכרזה גדולה
    י יוסף בן שמעון

    @הבוס-הגדול אמר בדחוף מאוד - מסגרת לכרזה גדולה:

    עבר כמה ימים ולא אישרו לי את הניק שלי.
    אפשר לקבל פרטים ליצירת קשר שם?

    אולי היוזר שבחרת לא עומד בקריטריונים שם, תנסה שם אחר


  • api ווקומורס cart
    י יוסף בן שמעון

    @chagold אמר בapi ווקומורס cart:

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


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

    @חוקר אמר בשאלות של מתחיל - מקצועי ב 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")
        })
    })
    
    

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

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

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

    הפתרון היא לעבוד עם callback או עם promise, לדוגמא במודול שאתה משתמש יש פרומיס מובנה

    מה זה פרומיס?

    https://internet-israel.com/רשת-האינטרנט/promises/


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

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

    נוד היא סינכרונית, כלומר כשאתה שולח בקשה לשרת מרוחק המעבד ממתין לתשובה, בנתיים הקומפיילר לא מחכה אלא ממשיך לשורה הבאה, ועד שהתשובה מגיעה הוא כבר אוחז כמה שורות אח"כ ולכן הוא לא טוען את התשובה למשתנה.
    הפתרון היא לעבוד עם callback או עם promise, לדוגמא במודול שאתה משתמש יש פרומיס מובנה, תראה כאן:
    https://www.npmjs.com/package/node-fetch#plain-text-or-html

    fetch('https://github.com/')
        .then(res => res.text())
        .then(body => console.log(body));
    

    then הראשון ממיר את התשובה מאובייקט לטקסט, ומחזיר אותו ל then השני, ובשני אתה יכול לשלוח את התשובה לאיפה שאתה רוצה. משהו כזה:

    app.get('/page', (req, res)=>{
        fetch('https://github.com/')
        .then(response => response.text())
        .then(body =>{
            if (body = "ok"){
                res.end(body);
            } else{
                res.end("no");
            }
        });
    })```
  • 1
  • 2
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 45 / 49
  • התחברות

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

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