PracticU

יצירת מיקרוסרביס - Microservice בנוד NodeJS

בלי כתוביותעם כתוביות
PracticU › קורס NodeJS › יצירת מיקרוסרביס - Microservice בנוד NodeJS
מילון מושגים:
Node.js - סביבת ריצה שמאפשרת להריץ קוד JavaScript מחוץ לדפדפן, בעיקר בצד השרת.
npm - מנהל החבילות של Node.js, המשמש להתקנה ולניהול ספריות JavaScript בפרויקט.
TCP - פרוטוקול תקשורת אמין שמוודא שכל חבילות המידע מגיעות ליעד בשלמות ובסדר הנכון.
Localhost - שם המפנה למחשב המקומי עצמו (כתובת 127.0.0.1), המשמש לבדיקת שירותים הרצים על אותו מחשב.
Middleware - שכבת תוכנה שמתווכת בין רכיבים ומטפלת בבקשות בדרכן, למשל לאימות, רישום לוג או עיבוד נתונים.
URL - הכתובת שמזהה משאב באינטרנט, למשל דף אתר, וכוללת פרוטוקול, שם מארח ונתיב.
ראוט - הגדרה שמקשרת כתובת בקשה לקוד שמטפל בה באפליקציה. גם מסלול שדרכו עוברות חבילות ברשת.
טרמינל - חלון או תוכנה שמספקים ממשק שורת פקודה להקלדת פקודות למערכת ההפעלה.

יצירת מיקרוסרביס - Microservice בנוד NodeJS
בונים ב-Node.js מיקרוסרביס פשוט שמייצר סיסמה אקראית. במקום Express, שהיא ספרייה גדולה, משתמשים בספרייה קטנה בשם micro.
השלבים העיקריים
1. התקנה: npm i micro, בלי להתקין Express.
2. סקריפט הפעלה: ב-package.json מגדירים סקריפט start שמפעיל את micro עם דגל האזנה (listen) לכתובת tcp://localhost:3001. הספרייה דורשת TCP, והיא מרימה את השירות על HTTP. מריצים עם npm start ולא עם node app.
3. הפונקציה: מייצרים פונקציה generatePassword שמקבלת request ו-response, בלי next, כי זה לא middleware, וחושפים אותה עם module.exports.
4. אורך הסיסמה: האורך מגיע מה-URL של הבקשה, כלומר מהראוט, למשל /12. לוקחים את request.url בלי התו הראשון (substring), והופכים למספר.
5. ברירת מחדל: אם ה-URL ריק או שהאורך אינו מספר (isNaN), למשל abc, משתמשים באורך 10 ולא מפילים את השירות.
6. בניית הסיסמה: מחרוזת של אותיות קטנות, אותיות גדולות וספרות. בלולאה מגרילים אינדקס עם Math.random כפול אורך המחרוזת, ומוסיפים את התו שבמקום הזה. בסוף מחזירים את הסיסמה.
7. בדיקה בדפדפן: http://localhost:3001/5 מחזיר סיסמה אקראית באורך 5, ו-15 מחזיר סיסמה באורך 15. בכל רענון הסיסמה שונה. ערך לא חוקי או ללא מספר מחזירים סיסמה באורך 10.
הערה
ההודעה שמופיעה בטרמינל היא שהשירות מקבל חיבורים על פורט 3001.
עכשיו יש מיקרוסרביס עצמאי שמספק שירות לוגי אחד, וההרצאה הבאה בונה מיקרוסרביס נוסף שמשתמש בו.
השיעור הבא בקורס: מיקרוסרביס שמשתמש במיקרוסרביס אחר

פרקי ההרצאה: יצירת מיקרוסרביס - Microservice בנוד NodeJS

  1. 00:00

    בניית Microservice משלנו

  2. 00:36

    ספרייה קטנה במקום Express

  3. 01:11

    התקנת micro וסקריפט start

  4. 01:54

    האזנה עם tcp על פורט 3001

  5. 02:44

    שירות ליצירת סיסמה רנדומלית

  6. 03:22

    בניית מאגר התווים לסיסמה

  7. 04:10

    קביעת אורך הסיסמה מה-URL

תמלול ההרצאה: יצירת מיקרוסרביס - Microservice בנוד NodeJS

הטקסט המלא של הדקות הראשונות בהרצאה «יצירת מיקרוסרביס - Microservice בנוד NodeJS» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:03

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

  2. 00:27

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

  3. 00:41

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

  4. 00:58

    אז בואו נתקין אותה בלי שאנחנו מתקינים את אקספרס, התקנו פה את אקספרס ויש לנו את NPMi ונקרא לזה מייקרו. הספרייה נקראת מייקרו.

  5. 01:09

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

  6. 01:29

    בשביל להפעיל את פקודת סטארט אנחנו לא רושמים כאן נוד אפ שמפעילה את אפ אנחנו רושמים npm start ואז מה שכתוב פה יופעל ומה אנחנו רוצים לכתוב פה אנחנו רוצים להפעיל את ספריית מייקרו ולתת לה listen כלומר דגל של על מה אנחנו מאזינים ואנחנו רוצים להאזין על localhost איזשהו פורט נניח 3001

  7. 02:03

    אבל אנחנו לא רושמים htp אלא אנחנו רושמים tcp כשלהזכיר לכם זאת התשתית של htp אז מייקרו דורשת מאיתנו להגיד לה את אותה הכתובת על tcp והיא כבר תרים אותה על htp localhost פקודותיים ו port 3001 זאת אומרת שהמיקרו סרוויץ שאנחנו בונים זאת תהיה הכתובת שלו

  8. 02:27

    וכאשר אנחנו מריצים את כל הסיפור הזה אנחנו צריכים פשוט לרשום npm start והוא יריץ לנו את הפקודה אז בואו נצלול ונבנה אותו. אנחנו בונים כאן איזושהי פונקציה ובוא נניח שהמייקרו סרוויץ שלנו ומייקרו סרוויץ שהתפקיד שלו זה לייצר סיסמה generate password זה מה שהוא יוצר איזושהי סיסמה רנדומלית כלשהי.

  9. 02:55

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

  10. 03:17

    אנחנו רוצים to module exports generate password. זה אנחנו חושפים החוצה. בואו נייצר סיסמה רנדומלית. ניקח את כל התווים שאנחנו רוצים.

  11. 03:33

    נניח שיש לנו אותיות קטנות, אותיות גדולות וספרות. אז בואו ניקח את הסדרה של התווים, A, B, C, D, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z.

  12. 03:53

    ואנחנו רוצים גם את אותו הדבר באותיות גדולות, W, X, Y, Z, ואת הספרות. Good. יש לנו פה את כל התווים.

  13. 04:13

    עכשיו אנחנו רוצים את הסיסמה עצמה, אבל בואו נחשוב מה האורך שלה אז אנחנו יכולים להחליט שהאורך שלה אורך קבוע אבל בואו נעשה משהו כזה ב-request יש url url זה ה-url שגולשים אלינו זה בעצם ה-rout זה רק החלק של ה-rout אז אנחנו יכולים שישלחו לנו את האורך ב-rout נניח שזה הדוקומנטציה שאנחנו מחליטים לפרסם אז בואו ניקח length של הסיסמה

לקורס המלא: קורס NodeJS אונליין בעברית

ההרצאה הקודמת: הסבר על מיקרוסרביס - Microservice

ההרצאה הבאה: מיקרוסרביס שמשתמש במיקרוסרביס אחר

הרצאות קשורות מקורסים אחרים

  • הסבר על - מיקרו סרוויס - Microservice
  • יצירת מפתחות הצפנה ב-AWS - פרויקט NodeJS

קורסים נוספים במסלול

  • קורס יסודות HTML - בניית אתר אינטרנט פשוט
  • קורס CSS 3 - בדגש על Flex & Grid
  • קורס Javascript כולל JQuery
  • קורס ג'אווה סקריפט מעשי - JavaScript
  • קורס TypeScript
  • קורס ריאקט - React