PracticU

שימוש ב-Cookies בצד שרת ב-NodeJS

בלי כתוביותעם כתוביות
PracticU › קורס NodeJS › שימוש ב-Cookies בצד שרת ב-NodeJS
מילון מושגים:
צד שרת - החלק של היישום שרץ בשרת ואחראי על הלוגיקה, מסדי הנתונים והעיבוד שמאחורי הקלעים.
Node.js - סביבת ריצה שמאפשרת להריץ קוד JavaScript מחוץ לדפדפן, בעיקר בצד השרת.
עוגייה - קובץ קטן שאתר שומר בדפדפן כדי לזכור מידע על המשתמש בין בקשות, למשל מצב התחברות או העדפות.
npm - מנהל החבילות של Node.js, המשמש להתקנה ולניהול ספריות JavaScript בפרויקט.
ראוט - הגדרה שמקשרת כתובת בקשה לקוד שמטפל בה באפליקציה. גם מסלול שדרכו עוברות חבילות ברשת.
תגובה - המידע שהשרת מחזיר ללקוח בתשובה לבקשה, הכולל בדרך כלל נתונים וקוד סטטוס.
JSON - פורמט טקסט קריא לייצוג נתונים מובְנים כזוגות מפתח-ערך, נפוץ להחלפת מידע בין שרת ללקוח.
לולאה - מבנה בקרה שחוזר על קטע קוד שוב ושוב כל עוד תנאי מתקיים או עבור כל פריט באוסף.

שימוש ב-Cookies בצד שרת ב-NodeJS
cookies לא נשמרים בשרת לעולם, הם נשמרים בלקוח, אבל השרת יכול להורות לדפדפן לשמור אותם, לקרוא אותם ולמחוק אותם. ההרצאה מראה איך עושים זאת ב-Express בעזרת cookie-parser.
השלבים העיקריים
1. הגבלה: אפשר לשמור הרבה cookies, אבל סך הכל כ-4 קילובייט לאתר.
2. התקנה: מתקינים npm i cookie-parser, מייבאים עם require ומשלבים בשרת עם server.use(cookieParser()). הוא מביא את ה-cookies של הבקשה ומציב אותם ב-request.
3. שמירה: בראוט saveCookies קוראים ל-response.cookie עם key ו-value, למשל color עם green ו-number עם 456. cookie כזה הוא non-persistent.
4. cookie מתמיד: מוסיפים אובייקט אפשרויות עם maxAge במילי-שניות, מחושב כשנייה כפול 60 כפול 60 כפול 24 כפול 365 לשנה. מסיימים את התשובה עם end, send או json.
5. קריאה: בראוט readCookies ניגשים ל-request.cookies, אובייקט שאפשר להציג כולו או לקרוא ממנו שדה אחד, למשל color או number.
6. ניקוי: ב-response.clearCookie נותנים את שם ה-cookie.
7. בדיקה: אחרי ביקור ב-saveCookies רואים את number ו-color עם הערכים החדשים. אחרי סגירת הדפדפן ופתיחה מחדש נשאר רק number, כי רק לו הוגדר maxAge.
שימו לב
- קריאה של cookies מהלקוח נעשית דרך request, ואילו שליחת cookie ללקוח או מחיקה שלו נעשית דרך response. המרצה התבלבל בין השניים באמצע ותיקן.
- בעצם הניסיון לנקות את כל ה-cookies בלולאה על response.cookies לא עבד כפי שהמרצה ציפה, ורק color נמחק. מחיקה ישירה של number עבדה. המרצה משער שההתנהגות השתנתה בגרסה הנוכחית.
אפשר עכשיו לשמור, לקרוא ולנקות cookies מהשרת ומהלקוח, וההרצאה הבאה מראה שימוש אמיתי בהם.
השיעור הבא בקורס: יצירת אתר עם ריבוי שפות ב-NodeJS

פרקי ההרצאה: שימוש ב-Cookies בצד שרת ב-NodeJS

  1. 00:00

    cookies מצד השרת ומגבלת 4KB

  2. 01:07

    התקנת cookie-parser

  3. 01:44

    הפעלת cookieParser ושמירת cookie זמני

  4. 02:41

    cookie קבוע עם maxAge

  5. 04:00

    קריאת cookies מ-request.cookies

  6. 04:55

    ניקוי cookies עם clearCookie

תמלול ההרצאה: שימוש ב-Cookies בצד שרת ב-NodeJS

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

  1. 00:03

    כעת אנחנו רוצים להצליח לשמור את הקוקי כלשהו ולקרוא אותו וגם לנקות את כל הקוקי'ס מצד השרת. חשוב להבין, הקוקי'ס לא נשמרים בשרת אף פעם, קוקי זה משהו שנשמר ב-client side ופשוט נתון אינפורמטיבי שיש לו key וvalue ואנחנו יכולים לשמור סדרה של קוקי'ס, כמובן הרבה קוקי'ס.

  2. 00:30

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

  3. 01:09

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

  4. 01:26

    בואו נבצע את ההתקנה, וכעת אנחנו יכולים לבוא לפה למעלה, const cookieparser require kiparser. כל מה שאנחנו צריכים לעשות, ראשית זה server.use.cookie.parser, זה משלב ב-request.cookies, מביא אותם ושם אותם ב-request, ובואו ניתן את אותם ה-cookies בדיוק שהיו מקודם.

  5. 02:02

    אז יש לנו כאן את color, ו-color היה, value שלו היה red, בואו ניתן green, יש לנו פה key ו-value, ויש לנו כאן את היכולת לתת גם, זה כמובן יהיה non-persistent-cookie ובואו ניתן עוד אחד request-cookies number וניתן לו 456 מספר אחר ואנחנו יכולים לעשות persistent-cookie על ידי הכנסת מעין

  6. 02:47

    options כאלה של max age וכמה זמן אנחנו רוצים שהקוקי תישמר. אז אנחנו רוצים h זה במילי שניות, 1000 מילי שניות זה שנייה אחת, כפול 60 זה דקה, כפול 60 זה שעה, כפול 24 זה בואו נניח ששמרנו את זה ליום אחד, בואו ניתן לו כפול 365 והנה יש לנו עכשיו בצורה ברורה זמן של שנה אחת ששמרנו את הקוקי.

  7. 03:28

    כמובן שאנחנו יכולים לשמור איזה זמן שאנחנו רוצים. בואו ניתן כאן איזה console.log.saved וכמובן שאנחנו רוצים להחזיר תשובה ללקוח, זה יהיה response.json או send או פשוט end בשביל לסיים את ה-response עצמו.

  8. 03:53

    ניקח את כל זה, נשכפל ל-read, זה היה read, read, קראנו לזה read אז נקרא גם פה read ואנחנו רוצים לקרוא את המידע, אז מה נעשה איתו? בואו נציג אותו על הקונסול, console.log ויש לנו request.cookies ופשוט אנחנו ניגשים למשתנה הנה ה-color הנה ה-number

  9. 04:23

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

  10. 04:58

    ונשאר לנו רק לנקות את ה-cookies, נשכפל, יש לנו פה פונקציה, clear cookies, ובשביל לנקות אנחנו יכולים לקרוא ל-response.clearPookie ולתת לה את ה-cookie שאנחנו רוצים, נניח color ויש לנו אפשרות לרוץ על כל ה-cookies,

  11. 05:40

    response-cookies ופשוט לנקות אחת-אחת.

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

ההרצאה הקודמת: שימוש ב-Cookies בצד לקוח ב-NodeJS

ההרצאה הבאה: יצירת אתר עם ריבוי שפות ב-NodeJS

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

  • Cookies
  • מה זה cookies ?
  • טיפול בשגיאות בצד שרת - Exceptions
  • צד שרת

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

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