דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. מחשבים וטכנולוגיה
  3. רשתות
  4. פיתוח ועיצוב אתרים
  5. Full Stack
  6. צד שרת
  7. NodeJS
  8. עזרה הדדית - NodeJS
  9. בירור | הרצת כמה סקריפטים במקביל

בירור | הרצת כמה סקריפטים במקביל

מתוזמן נעוץ נעול הועבר עזרה הדדית - NodeJS
71 פוסטים 6 כותבים 229 צפיות 4 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • ע מנותק
    ע מנותק
    עידו300
    כתב נערך לאחרונה על ידי עידו300
    #32

    טוב, אל תבהלו זה הקוד המלא.
    ניסיתי לשנות אותו לפי הקוספט של זה
    app.use('/login', login);
    אבל יש בו קצת בעיה כי הוא משתמש בראוטר אחר או משהו כזה.
    אשמח לעזרה איך להתאים אותו למה שהסברתם לי, שאוכל לדעת לטפל בשאר.

    import express from 'express';
    import { YemotRouter } from 'yemot-router2';
    import { fileURLToPath } from 'url';
    import process from 'process';
    import { streets, regions, citys } from './streets_data.js';
    import {
        chooseBuyorrent,
        chooseCity,
        chooseBetShemesh,
        chooseregion,
        choosestreet,
        choosenumber,
        choosefloor,
        chooseroom,
        chooseprice,
        choosephone
    } from './validate_func.js';
    
    export const app = express();
    
    export const router = YemotRouter({
        printLog: true,
        uncaughtErrorHandler: (error, call) => {
            console.log(`Uncaught error in ${call.req.path} from ${call.phone}. error stack: ${error.stack}`);
            return call.id_list_message([{ type: 'text', data: 'אירעה שגיאה' }]);
        }
    });
    
    router.events.on('call_hangup', call => console.log(`[example.js] call ${call.callId} was hangup`));
    router.events.on('call_continue', call => console.log(`[example.js] call ${call.callId} was continue`));
    router.events.on('new_call', call => console.log(`[example.js] new call ${call.callId} from ${call.phone}`));
    
    /**
     * @typedef {Object} AdData
     * @property {number} id
     * @property {string} buyorrent
     * @property {string} city
     * @property {string} betShemesh
     * @property {string} region
     * @property {string} street
     * @property {number} number
     * @property {number} floor
     * @property {number} room
     * @property {number} price
     * @property {string} phone
     * @property {string} phone2
     * @property {string} created_at
     */
    
    /**
     * @typedef {Object} AdResponse
     * @property {string} status
     * @property {string} [message]
     * @property {AdData[]} [data]
     */
    
    /** @param {import('yemot-router2').Call} call */
    async function callHandler(call) {
        console.log("מכין בקשה");
        let phone = call.ApiPhone.replace("+972", "0");
        const params = new URLSearchParams({ phone });
        const url = `https://stamandsefer.co.il/appart/new/getSellerAds.php?${params}`;
        console.log(url);
        console.log("שולח בקשה");
    
        /** @type {AdResponse} */
        let response;
    
        try {
            const res = await fetch(url, { method: 'GET' });
            if (!res.ok) throw new Error(`שגיאת HTTP: ${res.status} ${res.statusText}`);
    
            try {
                response = await res.json();
            } catch {
                throw new Error("התשובה שהתקבלה אינה JSON תקין");
            }
    
            console.log('Response:', response);
    
            if (response.status !== "success" || !Array.isArray(response?.data)) {
                console.error('שגיאת שרת:', response);
                call.id_list_message([{ type: "text", data: "אירעה שגיאה בעת שמירת המודעה" }]);
                return;
            }
        } catch (err) {
            console.error('שגיאה בשליחת הבקשה:', err.message);
            call.id_list_message([{ type: "text", data: "שגיאה בשליחת המודעה" }]);
            return;
        }
    
        // עיבוד מודעות
        for (const adBase of response.data) {
            let ad = `המודעה היא דירה ל${adBase.buyorrent} ב${adBase.city}`;
            if (adBase.city === "בית שמש") ad += `ה${adBase.betShemesh}`;
            ad += ` בשכונה ${adBase.region} ברחוב ${adBase.street} מספר ${adBase.number} קומה ${adBase.floor} ${adBase.room} חדרים במחיר ${adBase.price} טלפון ליצירת קשר ${adBase.phone}`;
            if (adBase.phone2) ad += ` טלפון נוסף ${adBase.phone2}`;
            ad = ad.replace(".5", " וחצי").replace("-", "מינוס ").replace(".0","");
            console.log(ad);
    
            let ok = false;
            for (let i = 0; i < 3 && !ok; i++) {
                let toDo = await call.read(
                    [{ type: 'text', data: `${ad}  לעריכת המודעה הקש 1 למחיקה 2 ולמודעה הבאה 3` }],
                    'tap',
                    { max_digits: 1, min_digits: 1, typing_playback_mode: "No", digits_allowed: [1, 2, 3] }
                );
    
                if (toDo === "1") {
                  ok =  await editAd(call, adBase);
                } else if (toDo === "2" && "1" === await call.read(
                    [{ type: 'text', data: `האם אתה בטוח שברצונך למחוק את המודעה 1 לאישור 2 לביטול` }],
                    'tap',
                    { max_digits: 1, min_digits: 1, typing_playback_mode: "No", digits_allowed: [1, 2] }
                )) {
                    await deleteAd(call, adBase, phone);
                    ok = true;
                } else if (toDo === "3") {
                    ok = true;
                } else {
                    if (i === 2) call.id_list_message([{ type: 'text', data: 'ניסיון לא חוקי, שלום ולהתראות' }]);
                }
            }
        }
    }
    
    router.get('/', callHandler);
    app.use(express.urlencoded({ extended: true }));
    app.use('/manageSellersAd', router);
    
    const port = 3000;
    const isMain = process.argv[1] === fileURLToPath(import.meta.url);
    if (isMain) {
        app.listen(port, () => console.log(`example yemot-router2 running on port ${port}`));
    }
    
    /**********************************************************************/
    /** @param {import('yemot-router2').Call} call @param {AdData} adBase */
    async function editAd(call, adBase) {
        let { city, betShemesh, region, street, number, floor, room, price, phone, phone2 } = adBase;
        let paramsToChange = {};
        let ad="";
        do {
            const choice = await call.read(
                [{ type: 'text', data: 'לעריכת עיר שכונה ורחוב הקש 1, בנין הקש 2, קומה הקש 3 מספר חדרים הקש 4 מחיר הקש 5 טלפון ליצירת קשר הקש 6 וטלפון נוסף 7' }],
                'tap',
                { max_digits: 1, min_digits: 1, typing_playback_mode: "No", digits_allowed: [1, 2, 3, 4, 5, 6, 7] }
            );
    
            switch (choice) {
                case "1":
                    city = await chooseCity(call);
                    betShemesh = city === "בית שמש" ? await chooseBetShemesh(call) : "";
                    region = await chooseregion(call, betShemesh, city);
                    street = await choosestreet(call, city);
                    Object.assign(paramsToChange, { city, betShemesh, region, street });
                    break;
                case "2": number = await choosenumber(call); paramsToChange.number = number; break;
                case "3": floor = await choosefloor(call); paramsToChange.floor = floor; break;
                case "4": room = await chooseroom(call); paramsToChange.room = room; break;
                case "5": price = await chooseprice(call); paramsToChange.price = price; break;
                case "6": phone = await choosephone(call); paramsToChange.newPhone = phone; break;
                case "7": phone2 = await choosephone(call); paramsToChange.phone2 = phone2; break;
                default: return false;
            }
    
            ad = `המודעה היא דירה ל${adBase.buyorrent} ב${city}`;
            if (city === "בית שמש") ad += `ה${betShemesh}`;
            ad += ` בשכונה ${region} ברחוב ${street} מספר ${number} קומה ${floor} ${room} חדרים במחיר ${price} טלפון ליצירת קשר ${phone}`;
            if (phone2) ad += ` טלפון נוסף ${phone2}`;
            ad = ad.replace(".5", " וחצי").replace("-", "מינוס ").replace(".0","");
            console.log(ad);
    
        } while (await call.read(
            [{ type: 'text', data: `${ad} , לעריכת המודעה הקש 1 לפרסום ושמירה 2` }],
            'tap',
            { max_digits: 1, min_digits: 1, typing_playback_mode: "No", digits_allowed: [1, 2] }
        ) !== "2");
    
        paramsToChange.phone = call.ApiPhone.replace("+972", "0");
        paramsToChange.adId = adBase.id;
        const params = new URLSearchParams(paramsToChange);
        const url = `https://stamandsefer.co.il/appart/new/updateAd.php?${params}`;
        console.log("שולח בקשה");
    
        try {
            const res = await fetch(url, { method: 'GET' });
            if (!res.ok) throw new Error(`שגיאת HTTP: ${res.status} ${res.statusText}`);
            const response = await res.json();
            console.log('Response:', response);
    
            if (response.status !== "success") {
                call.id_list_message([{ type: "text", data: "אירעה שגיאה בעת שמירת המודעה" }]);
                console.error('שגיאת שרת:', response);
            }
            return true;
        } catch (err) {
            console.error('שגיאה בשליחת הבקשה:', err.message);
            call.id_list_message([{ type: "text", data: "שגיאה בשליחת המודעה" }]);
        }
    }
    
    /**********************************************************************/
    /** @param {import('yemot-router2').Call} call @param {AdData} adBase @param {string} phone */
    async function deleteAd(call, adBase, phone) {
        const params = new URLSearchParams({ phone, adId: String(adBase.id) });
        const url = `https://stamandsefer.co.il/appart/new/deleteAd.php?${params}`;
        console.log("שולח בקשה");
    
        try {
            const res = await fetch(url, { method: 'GET' });
            if (!res.ok) throw new Error(`שגיאת HTTP: ${res.status} ${res.statusText}`);
            const response = await res.json();
            console.log('Response:', response);
    
            if (response.status !== "success") {
                call.id_list_message([{ type: "text", data: "אירעה שגיאה בעת מחיקת המודעה" }]);
                console.error('שגיאת שרת:', response);
            }
        } catch (err) {
            console.error('שגיאה בשליחת הבקשה:', err.message);
            call.id_list_message([{ type: "text", data: "שגיאה בשליחת המודעה" }]);
        }
    }
    
    

    אשמח כאן גם ל @צדיק-תמים (אתה אחראי על הספריה לא?)

    תגובה 1 תגובה אחרונה
    0
    • צדיק תמיםצ מנותק
      צדיק תמיםצ מנותק
      צדיק תמים
      מדריכים
      כתב נערך לאחרונה על ידי
      #33

      @עידו300 כתב בבירור | הרצת כמה סקריפטים במקביל:

      gpt מתעקש על הדרך שהוא כתב.
      תראו https://chatgpt.com/share/68f7352d-e9cc-8000-8072-3de179fe6480

      אתה צריך לצאת מהראש של סקריפטים בPHP ולעבור לראש של אפליקציה שרצה קבוע, זה לא שהראוטר "מריץ קובץ" JS לפי הנתיב (לא ברור למה נראה לך שזה טוחן מעבד, להיפך PHP הרבה יותר כבד, ואכמ"ל)
      ממליץ על https://did.li/zg9Hw

      יש לך אגב בתחומים הרבה שרשורים דומים של מתכנתים שעברו מPHP לנוד והתקשו להבין את הגישה השונה

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

      ע 2 תגובות תגובה אחרונה
      1
      • צדיק תמיםצ צדיק תמים

        @עידו300 כתב בבירור | הרצת כמה סקריפטים במקביל:

        gpt מתעקש על הדרך שהוא כתב.
        תראו https://chatgpt.com/share/68f7352d-e9cc-8000-8072-3de179fe6480

        אתה צריך לצאת מהראש של סקריפטים בPHP ולעבור לראש של אפליקציה שרצה קבוע, זה לא שהראוטר "מריץ קובץ" JS לפי הנתיב (לא ברור למה נראה לך שזה טוחן מעבד, להיפך PHP הרבה יותר כבד, ואכמ"ל)
        ממליץ על https://did.li/zg9Hw

        יש לך אגב בתחומים הרבה שרשורים דומים של מתכנתים שעברו מPHP לנוד והתקשו להבין את הגישה השונה

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

        @צדיק-תמים כתב בבירור | הרצת כמה סקריפטים במקביל:

        (לא ברור למה נראה לך שזה טוחן מעבד, להיפך PHP הרבה יותר כבד, ואכמ"ל)

        אני רואה איך המעבד מגיע ל100%...

        @צדיק-תמים כתב בבירור | הרצת כמה סקריפטים במקביל:

        אתה צריך לצאת מהראש של סקריפטים בPHP ולעבור לראש של אפליקציה שרצה קבוע

        אני בעד, במה זה מתבטא? במה זה שונה?

        תכלס, איך משנים את זה? מה עושים הלאה?

        יש לי עוד שאלה על הספריה המדהימה הזאת (לגבי השמעת call.id_list_message והמשך ביצוע פעולות), אשאל פה או שאפתח שרשור חדש?

        צדיק תמיםצ ע"ה דכו"עע 2 תגובות תגובה אחרונה
        0
        • ע עידו300

          @צדיק-תמים כתב בבירור | הרצת כמה סקריפטים במקביל:

          (לא ברור למה נראה לך שזה טוחן מעבד, להיפך PHP הרבה יותר כבד, ואכמ"ל)

          אני רואה איך המעבד מגיע ל100%...

          @צדיק-תמים כתב בבירור | הרצת כמה סקריפטים במקביל:

          אתה צריך לצאת מהראש של סקריפטים בPHP ולעבור לראש של אפליקציה שרצה קבוע

          אני בעד, במה זה מתבטא? במה זה שונה?

          תכלס, איך משנים את זה? מה עושים הלאה?

          יש לי עוד שאלה על הספריה המדהימה הזאת (לגבי השמעת call.id_list_message והמשך ביצוע פעולות), אשאל פה או שאפתח שרשור חדש?

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

          @עידו300 קודם כל תראה את הפלייליסט ששלחתי, לפחות את פרקים 1-5
          שאלות ספציפיות על הספריה בנושא נפרד כמובן

          @עידו300 כתב בבירור | הרצת כמה סקריפטים במקביל:

          אני רואה איך המעבד מגיע ל100%...

          זה לא תקין, מה הקוד שלך עושה?

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

          ע תגובה 1 תגובה אחרונה
          0
          • ע עידו300

            @צדיק-תמים כתב בבירור | הרצת כמה סקריפטים במקביל:

            (לא ברור למה נראה לך שזה טוחן מעבד, להיפך PHP הרבה יותר כבד, ואכמ"ל)

            אני רואה איך המעבד מגיע ל100%...

            @צדיק-תמים כתב בבירור | הרצת כמה סקריפטים במקביל:

            אתה צריך לצאת מהראש של סקריפטים בPHP ולעבור לראש של אפליקציה שרצה קבוע

            אני בעד, במה זה מתבטא? במה זה שונה?

            תכלס, איך משנים את זה? מה עושים הלאה?

            יש לי עוד שאלה על הספריה המדהימה הזאת (לגבי השמעת call.id_list_message והמשך ביצוע פעולות), אשאל פה או שאפתח שרשור חדש?

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

            @עידו300 כתב בבירור | הרצת כמה סקריפטים במקביל:

            אני רואה איך המעבד מגיע ל100%...

            איזה מעבד יש לך בשרת? זה נשמע שאתה במבצע חיסכון

            צדיק תמיםצ ע 2 תגובות תגובה אחרונה
            0
            • צדיק תמיםצ צדיק תמים

              @עידו300 קודם כל תראה את הפלייליסט ששלחתי, לפחות את פרקים 1-5
              שאלות ספציפיות על הספריה בנושא נפרד כמובן

              @עידו300 כתב בבירור | הרצת כמה סקריפטים במקביל:

              אני רואה איך המעבד מגיע ל100%...

              זה לא תקין, מה הקוד שלך עושה?

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

              בעז"ה אבל @צדיק-תמים קריטי לי עכשיו החלק של app.use('/login', login);
              שבספריה א"א בגלל שמשתמשים בראוטר אחר.
              אשמח לעזרה (אני צריך להראות דוגמא ללקוח ולא יכול בגלל שלא מצליח לחבר את שתיהן ביחד ולא רוצה לפתוח עוד פורט למרות שבמקרה הצורך זה מה שאעשה..)

              תגובה 1 תגובה אחרונה
              0
              • ע"ה דכו"עע ע"ה דכו"ע

                @עידו300 כתב בבירור | הרצת כמה סקריפטים במקביל:

                אני רואה איך המעבד מגיע ל100%...

                איזה מעבד יש לך בשרת? זה נשמע שאתה במבצע חיסכון

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

                @ע-ה-דכו-ע כתב בבירור | הרצת כמה סקריפטים במקביל:

                @עידו300 כתב בבירור | הרצת כמה סקריפטים במקביל:

                אני רואה איך המעבד מגיע ל100%...

                כמה ליבות מעבד יש לך בשרת? זה נשמע שאתה במבצע חיסכון

                זה לא ממש משנה כמה ליבות כי נוד משתמש רק באחת...
                אבל בהנחה שהוא לא עושה חישובים כבדים זה ממש לא תקין

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

                ע 2 תגובות תגובה אחרונה
                0
                • ע"ה דכו"עע ע"ה דכו"ע

                  @עידו300 כתב בבירור | הרצת כמה סקריפטים במקביל:

                  אני רואה איך המעבד מגיע ל100%...

                  איזה מעבד יש לך בשרת? זה נשמע שאתה במבצע חיסכון

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

                  @ע-ה-דכו-ע יש לי 2 ליבות ואני רואה עכשיו שזה על 100% למרות שכלום לא בשימוש 😲 😕

                  תגובה 1 תגובה אחרונה
                  0
                  • צדיק תמיםצ צדיק תמים

                    @ע-ה-דכו-ע כתב בבירור | הרצת כמה סקריפטים במקביל:

                    @עידו300 כתב בבירור | הרצת כמה סקריפטים במקביל:

                    אני רואה איך המעבד מגיע ל100%...

                    כמה ליבות מעבד יש לך בשרת? זה נשמע שאתה במבצע חיסכון

                    זה לא ממש משנה כמה ליבות כי נוד משתמש רק באחת...
                    אבל בהנחה שהוא לא עושה חישובים כבדים זה ממש לא תקין

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

                    @צדיק-תמים כתב בבירור | הרצת כמה סקריפטים במקביל:

                    אבל בהנחה שהוא לא עושה חישובים כבדים זה ממש לא תקין

                    לא יודע אם חישובים כבדים אבל עושה דברים.

                    תגובה 1 תגובה אחרונה
                    0
                    • צדיק תמיםצ צדיק תמים

                      @ע-ה-דכו-ע כתב בבירור | הרצת כמה סקריפטים במקביל:

                      @עידו300 כתב בבירור | הרצת כמה סקריפטים במקביל:

                      אני רואה איך המעבד מגיע ל100%...

                      כמה ליבות מעבד יש לך בשרת? זה נשמע שאתה במבצע חיסכון

                      זה לא ממש משנה כמה ליבות כי נוד משתמש רק באחת...
                      אבל בהנחה שהוא לא עושה חישובים כבדים זה ממש לא תקין

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

                      @צדיק-תמים כתב בבירור | הרצת כמה סקריפטים במקביל:

                      זה לא ממש משנה כמה ליבות כי נוד משתמש רק באחת...

                      ובדיוק זו הבעיה...

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

                      תודה

                      צדיק תמיםצ תגובה 1 תגובה אחרונה
                      0
                      • ע עידו300

                        @צדיק-תמים כתב בבירור | הרצת כמה סקריפטים במקביל:

                        זה לא ממש משנה כמה ליבות כי נוד משתמש רק באחת...

                        ובדיוק זו הבעיה...

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

                        תודה

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

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

                        @עידו300 כתב בבירור | הרצת כמה סקריפטים במקביל:

                        ובדיוק זו הבעיה...

                        זה לא הבעיה

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

                        ע תגובה 1 תגובה אחרונה
                        2
                        • צדיק תמיםצ צדיק תמים

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

                          @עידו300 כתב בבירור | הרצת כמה סקריפטים במקביל:

                          ובדיוק זו הבעיה...

                          זה לא הבעיה

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

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

                          בכל מקרה עכשיו יש קשיים אחרים, הPM2 לא מריץ את זה, זאת אומרת כתוב אונליין אבל תכלס שניגשים לכתובת "וְאֵין קוֹל וְאֵין עֹנֶה וְאֵין קָשֶׁב".
                          כשמריצים כרגיל עם node *.js הכל טוב, אבל עם הPM2 לא... וגם כשמוסיפים & זה לא גורם לו להשאר אחרי שהטרמינל נסגר.

                          אני כבר משתגע מזה, בושות מהלקוח, טוב שהוא עוד לא התקשר לקו לבדוק.

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

                            השבתתי את זה

                            const isMain = process.argv[1] === fileURLToPath(import.meta.url);
                            if (isMain) {
                            }
                            

                            ועכשיו זה עובד ב"ה

                            תגובה 1 תגובה אחרונה
                            0
                            • צדיק תמיםצ צדיק תמים

                              @עידו300 כתב בבירור | הרצת כמה סקריפטים במקביל:

                              gpt מתעקש על הדרך שהוא כתב.
                              תראו https://chatgpt.com/share/68f7352d-e9cc-8000-8072-3de179fe6480

                              אתה צריך לצאת מהראש של סקריפטים בPHP ולעבור לראש של אפליקציה שרצה קבוע, זה לא שהראוטר "מריץ קובץ" JS לפי הנתיב (לא ברור למה נראה לך שזה טוחן מעבד, להיפך PHP הרבה יותר כבד, ואכמ"ל)
                              ממליץ על https://did.li/zg9Hw

                              יש לך אגב בתחומים הרבה שרשורים דומים של מתכנתים שעברו מPHP לנוד והתקשו להבין את הגישה השונה

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

                              @צדיק-תמים כתב בבירור | הרצת כמה סקריפטים במקביל:

                              ממליץ על https://did.li/zg9Hw

                              התחלתי לראות, מאוד טוב אבל מניח ידע מוקדם, הוא לא מסביר את הבסיס של מה שעשה שם, שזה מה שחסר לי.
                              הוא מניח שכולם יודעים מה זה midlleware ומה זה app.get וapp.use מה זה ראוט.

                              צדיק תמיםצ תגובה 1 תגובה אחרונה
                              0
                              • ע עידו300

                                @צדיק-תמים כתב בבירור | הרצת כמה סקריפטים במקביל:

                                ממליץ על https://did.li/zg9Hw

                                התחלתי לראות, מאוד טוב אבל מניח ידע מוקדם, הוא לא מסביר את הבסיס של מה שעשה שם, שזה מה שחסר לי.
                                הוא מניח שכולם יודעים מה זה midlleware ומה זה app.get וapp.use מה זה ראוט.

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

                                @עידו300 באיזה אחד אתה אוחז?
                                אני למדתי מזה בזמנו בלי ידע קודם, אז נראה לי שאתה פשוט צריך להמשיך

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

                                ע 2 תגובות תגובה אחרונה
                                0
                                • צדיק תמיםצ צדיק תמים

                                  @עידו300 באיזה אחד אתה אוחז?
                                  אני למדתי מזה בזמנו בלי ידע קודם, אז נראה לי שאתה פשוט צריך להמשיך

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

                                  @צדיק-תמים עכשיו צריך להתחיל את ה5

                                  תגובה 1 תגובה אחרונה
                                  0
                                  • צדיק תמיםצ צדיק תמים

                                    @עידו300 באיזה אחד אתה אוחז?
                                    אני למדתי מזה בזמנו בלי ידע קודם, אז נראה לי שאתה פשוט צריך להמשיך

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

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

                                    צדיק תמיםצ תגובה 1 תגובה אחרונה
                                    0
                                    • ע עידו300

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

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

                                      @עידו300 למה לא?
                                      0d4bdd73-9945-45f1-bd97-6ca5c3ac2bd6-CleanShot 2025-10-23 at 21.06.42@2x.png

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

                                      ע תגובה 1 תגובה אחרונה
                                      0
                                      • צדיק תמיםצ צדיק תמים

                                        @עידו300 למה לא?
                                        0d4bdd73-9945-45f1-bd97-6ca5c3ac2bd6-CleanShot 2025-10-23 at 21.06.42@2x.png

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

                                        @צדיק-תמים כתב בבירור | הרצת כמה סקריפטים במקביל:

                                        @עידו300 למה לא?
                                        a88fe1ff-18c3-4693-928e-d3654ebaa9b6-CleanShot 2025-10-23 at 12.15.08@2x.png

                                        אבל זה הראוטר של הספריה שלך, לא? לא של האקספרס

                                        צדיק תמיםצ תגובה 1 תגובה אחרונה
                                        0
                                        • ע עידו300

                                          @צדיק-תמים כתב בבירור | הרצת כמה סקריפטים במקביל:

                                          @עידו300 למה לא?
                                          a88fe1ff-18c3-4693-928e-d3654ebaa9b6-CleanShot 2025-10-23 at 12.15.08@2x.png

                                          אבל זה הראוטר של הספריה שלך, לא? לא של האקספרס

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

                                          @עידו300 הראוטר של הספריה הוא עטיפה לראוטר של אקספרס
                                          לדוגמה באותו פרויקט שהראיתי יש ראוטר נוסף רגיל של אקספרס עבור API רגיל
                                          e025dd8e-653c-4bed-abd3-51f291d872f3-CleanShot 2025-10-23 at 16.44.24@2x.png

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

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

                                          • התחברות

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

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