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

    עזרה בתחילת העבודה עם הספריה לnodejs למתחיל

    מתוזמן נעוץ נעול הועבר פורום מפתחים API
    11 פוסטים 2 כותבים 455 צפיות 1 עוקבים
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • תגובה כנושא
    התחברו כדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • צ מנותק
      צדיק תמים @מוטי מן
      נערך לאחרונה על ידי צדיק תמים

      @מוטי-מן יש דוגמה, ראית אותה? כדאי גם לעבור על התיעוד.

      מ תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • מ מנותק
        מוטי מן @צדיק תמים
        נערך לאחרונה על ידי מוטי מן

        @צדיק-תמים עברתי, ולא ממש הבנתי את הדוגמה עצמה, היא יותר מידי עמוסה ומורכבת 😞

        האם אפשר לטעון את הדוגמה עצמה כך

        nodejs exmple.js
        

        ?

        א"כ, אילו מודולים צריך להתקין?

        צ 2 תגובות תגובה אחרונה תגובה ציטוט 0
        • צ מנותק
          צדיק תמים @מוטי מן
          נערך לאחרונה על ידי

          @מוטי-מן הנה דוגמה יותר מופשטת:

          import { YemotRouter } from 'yemot-router2';
          import express from 'express';
          export const app = express();
          
          export const router = YemotRouter({ printLog: true });
          
          /** @param {import('yemot-router2').Call} call */
          async function callHandler (call) {
              const choice = await call.read([{
                  type: 'text',
                  data: 'לשלום עולמי הקש 1 לבית חלומי הקש 2'
              }], 'tap', {
                  max_digits: 1,
                  digits_allowed: [1, 2]
              });
          
              console.log('choice', choice);
          
              return call.id_list_message([{
                  type: 'text',
                  data: 'שלום ותודה'
              }]);
          }
          
          router.get('/', callHandler);
          
          app.use(router);
          
          const port = 3000;
          app.listen(port, () => console.log(`example yemot-router2 running on port ${port}`));
          

          כדי להריץ אותה יש להתקין קודם את התלות:

          npm install express yemot-router2
          
          תגובה 1 תגובה אחרונה תגובה ציטוט 1
          • צ מנותק
            צדיק תמים @מוטי מן
            נערך לאחרונה על ידי

            @מוטי-מן כתב בעזרה בתחילת העבודה עם הספריה לnodejs למתחיל:

            @צדיק-תמים עברתי, ולא ממש הבנתי את הדוגמה עצמה, היא יותר מידי עמוסה ומורכבת 😞

            האם אפשר לטעון את הדוגמה עצמה כך

            nodejs exmple.js
            

            ?

            א"כ, אילו מודולים צריך להתקין?

            כדי להריץ את הדוגמה ששם תוריד את כל הrepo למחשב, תריץ npm install ואז npm run example (שזה בעצם node --watch example.js)

            מ תגובה 1 תגובה אחרונה תגובה ציטוט 1
            • מ מנותק
              מוטי מן @צדיק תמים
              נערך לאחרונה על ידי

              @צדיק-תמים כיצד ניתן לעבוד עם api_url_post=yes?

              אני מקבל את השגיאה

              
              Error: YemotRouter: it look you use api_url_post=yes, but you didn't include express.urlencoded({ extended: true }) middleware! (https://expressjs.com/en/4x/api.html#express.urlencoded)
                  at file:///var/www/node/node_modules/yemot-router2/lib/yemot_router.js:122:35
                  at Layer.handle [as handle_request] (/var/www/node/node_modules/express/lib/router/layer.js:95:5)
                  at next (/var/www/node/node_modules/express/lib/router/route.js:144:13)
                  at Route.dispatch (/var/www/node/node_modules/express/lib/router/route.js:114:3)
                  at Layer.handle [as handle_request] (/var/www/node/node_modules/express/lib/router/layer.js:95:5)
                  at /var/www/node/node_modules/express/lib/router/index.js:284:15
                  at Function.process_params (/var/www/node/node_modules/express/lib/router/index.js:346:12)
                  at next (/var/www/node/node_modules/express/lib/router/index.js:280:10)
                  at Function.handle (/var/www/node/node_modules/express/lib/router/index.js:175:3)
                  at router (/var/www/node/node_modules/express/lib/router/index.js:47:12)
              
              צ תגובה 1 תגובה אחרונה תגובה ציטוט 0
              • צ מנותק
                צדיק תמים @מוטי מן
                נערך לאחרונה על ידי צדיק תמים

                @מוטי-מן כתוב לך בדיוק מה הבעיה 🤔

                @מוטי-מן כתב בעזרה בתחילת העבודה עם הספריה לnodejs למתחיל:

                Error: YemotRouter: it look you use api_url_post=yes, but you didn't include express.urlencoded({ extended: true }) middleware! (https://expressjs.com/en/4x/api.html#express.urlencoded)

                מ תגובה 1 תגובה אחרונה תגובה ציטוט 0
                • מ מנותק
                  מוטי מן @צדיק תמים
                  נערך לאחרונה על ידי

                  @צדיק-תמים כן אבל זה לא ממש מובן, לפחות לאנשים כמוני 🙄

                  ובדרך אגב, יש דרך לשמור את הלוגים שהספריה מדפיסה לקובץ כלשהו בשרת?

                  צ תגובה 1 תגובה אחרונה תגובה ציטוט 0
                  • צ מנותק
                    צדיק תמים @מוטי מן
                    נערך לאחרונה על ידי

                    @מוטי-מן אתה צריך להוסיף:

                    app.use(express.urlencoded({ extended: true }));
                    

                    ממליץ לך שאחרי שהצלחת להקים hellow world תעבור על הדוגמה המלאה.

                    @מוטי-מן כתב בעזרה בתחילת העבודה עם הספריה לnodejs למתחיל:

                    ובדרך אגב, יש דרך לשמור את הלוגים שהספריה מדפיסה לקובץ כלשהו בשרת?

                    הספריה משתמשת בconsole.log, אתה יכול להפנות את הפלט של התהליך לקובץ טקסט:

                    node app.js >> log.txt
                    

                    כדי להחליף כל פעם את הקובץ במקום להוסיף, תשתמש ב> אחד.

                    עבור השרת אני ממליץ להשתמש בpm2 (https://tchumim.com/topic/2190/pm2-כלי-לניהול-והרצת-אפליקציות-טרמינל), כלי נוח מאוד שגם מאפשר לשמור את הלוגים עם תאריך ושעה אוטומטי, הפעלה אוטומטית של האפליקציות אחרי הפעלה מחדש, ועוד המון דברים.

                    מ תגובה 1 תגובה אחרונה תגובה ציטוט 1
                    • מ מנותק
                      מוטי מן @צדיק תמים
                      נערך לאחרונה על ידי

                      @צדיק-תמים ניסיתי את זה כבר, ככה

                      router.get('/', call);
                      router.post('/', call);
                      app.use(router);
                      app.use(express.urlencoded({ extended: true }));
                      

                      או ככה

                      router.get('/', call);
                      router.post('/', call);
                      app.use(router, express.urlencoded({ extended: true }));
                      

                      ועדיין מחזיר לי את השגיאה הנ"ל בעת קריאה בpost

                      צ תגובה 1 תגובה אחרונה תגובה ציטוט 0
                      • צ מנותק
                        צדיק תמים @מוטי מן
                        נערך לאחרונה על ידי צדיק תמים

                        @מוטי-מן השורה שהוספת צריכה להיות לפני הapp.use(router), כמו כל middleware

                        app.use(express.urlencoded({ extended: true }));
                        router.get('/', call);
                        router.post('/', call);
                        app.use(router);
                        

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

                        תגובה 1 תגובה אחרונה תגובה ציטוט 1

                        שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

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

                        בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

                        הרשמה התחברות
                        • פוסט ראשון
                          פוסט אחרון