תגובה: מדריך כתיבת אפליקציה וובית, Full-Stack, צעד אחר צעד
-
א. תודה רבה רבה על המדריך! אני מקווה מאוד שהמשכים יבואו. (אני יודע כמה כוחות לוקח לי לכתוב מדריך, אני רק מקווה שזה בא לך יותר בקלות ממה שזה בא לי...).
ב. שגיאת כתיב: בפוסט הראשון, במקום mogo צ"ל mongo. (האם אתה יכול בהזדמנות לייחד כמה משפטים על ענין בחירת DB - ובעיקר על השאלה של sql לעומת nosql?)
ג. "איך נראית תגובת השרת?... למרבה הצער הדפדפן לא מביא את זה כפי שזה...". גם לבקשה יכול להיות body ואז זה גם לא מוצג "כפי שזה". ובשני המקרים אפשר להרכיב את ה"מכתב" המלא על ידי חיבור ההידרים לבודי עם שורה ריקה באמצע. הבנתי נכון?
-
@yossiz ראשית כל תודה לך, ולכל המפרגנים.
בעניין תגובת השרת אתה צודק לחלוטין, דברי נסובו הודות המקרה הזה שהשאילתה מוצגת במלואה (כי היא get) ובתשובה יש צורך לדעת מה עומד מאחורי החלוקה בין הכותרות לתשובה ששניהם נשלחים באותו "מסר".בקשר לmongo, אני אישית מאוד בצד של מסדי הנתונים הישנים והטובים.
חשוב להסביר עוד נקודה על הבחירה שלי בטכנולוגיות האלה. אני בכלל לא רוצה לשלוח אנשים לפתח בנוד. אני אישית חסיד שרוף של דוטנט. אלא שבשביל הסברה אני מחפש טכנולוגיה שממעטת בהפשטות ושקל לראות בה הכל - כמו שללמוד איך עובד מכונית יותר טוב לקנות טרקטורון ממכונית מרצדס.
השאיפה שלי בסיום המדריך שהשאלה איפה לפתח תהיה עניין של כלי, ושפה, ולא אי הבנה מוחלטת "איך עובד המערכת האחרת" שהרי כולם עובדים באמת אותו דבר. -
@chagold הוא לא מכיר אותם.
הserver שולח את האובייקטים request וresponse בסדר הנכון, ואז אנו צופים את מקומם (אכן בהתאם למיקום בסוגריים כמו כל פונקציה בשפות הlike c).
אפשר להכליל ולומר שהשמות של פרמטרים בפונקציה הם תמיד לצרכי פנים של הפונקציה ותמיד שרירותיים בידי כותב הפונקציה. רק בoptional parameters שאין עדיין בJS יש משמעות לשמות גם לקוד הקורא. -
לשם כך הפונקציה הזו מקבלת פרמטר שנקרא לעיתים קרובות קאלבק-callback.
לשם הפשטות ניתן להתייחס לקלאבק בשפת JS, כאירוע.הserver שולח את האובייקטים request וresponse בסדר הנכון, ואז אנו צופים את מקומם (אכן בהתאם למיקום בסוגריים כמו כל פונקציה בשפות הlike c).
האם הפרמטר callback הוא תמיד פונקציה עם שני פרמטים (בקשה ותגובה) או שיש אפשרות להגדיר callback אחר (למשל עם עוד פרמטרים)?
-
@dovid אמר במדריך כתיבת אפליקציה וובית, Full-Stack, צעד אחר צעד:
ייבוא מודול.
הרחבת רשות: זה מביא מחלקה (שמה במקרה הזה הוא http וזו מחלקה של נוד שעוסקת בכל מה שקשור לפרוטוקול הזה). הייבוא נעשה לתוך "קבוע" ששמו http, ניתן לבחור בכל שם אחר כבכל משתנה. הגישה בהמשך למודול נעשית ע"י הקבוע שהמחלקה הוצבה בתוכו. אם הרקע שלכם הוא מJS בלבד ולא שום שפת תכנות אחרת יכול להיות שלא תבינו הרבה ממה שכתבתי פה, אנא שאלו (לא הביישן למד, עם מאה סימני קריאה) בפורום.
שאלה כללית על המבנה של נוד
האם ייבוא מודול היא קריאה לפונקציה גדולה שמפתחי נוד כתבו (והם מוחבאים איפה שהוא)
או שזה משהו אחר? -
@nigun
ייבוא מודול בנוד זהה עבור א. מודולים מובנים (למשל http), ב. מודולי ספריית NPM ג. מודולי משתמש (כל קובץ JS נוסף חייב להיכתב בצורת מודול), ההבדל הוא שבמודולי משתמש הכתובת היא יחסית או מוחלטת, ואילו השנים האחרים זה רק השם ללא כל נתיב.
מדובר בקבצי JS שכתובים בפורמט של מודול או בחבילות של קבצים כאלו או במקרים מסויימים קבצים בינאריים/קוד מכונה. -
מחכים להמשך ...