
npm i cookie-parser, מייבאים עם require ומשלבים בשרת עם server.use(cookieParser()). הוא מביא את ה-cookies של הבקשה ומציב אותם ב-request.saveCookies קוראים ל-response.cookie עם key ו-value, למשל color עם green ו-number עם 456. cookie כזה הוא non-persistent.maxAge במילי-שניות, מחושב כשנייה כפול 60 כפול 60 כפול 24 כפול 365 לשנה. מסיימים את התשובה עם end, send או json.readCookies ניגשים ל-request.cookies, אובייקט שאפשר להציג כולו או לקרוא ממנו שדה אחד, למשל color או number.response.clearCookie נותנים את שם ה-cookie.saveCookies רואים את number ו-color עם הערכים החדשים. אחרי סגירת הדפדפן ופתיחה מחדש נשאר רק number, כי רק לו הוגדר maxAge.request, ואילו שליחת cookie ללקוח או מחיקה שלו נעשית דרך response. המרצה התבלבל בין השניים באמצע ותיקן.response.cookies לא עבד כפי שהמרצה ציפה, ורק color נמחק. מחיקה ישירה של number עבדה. המרצה משער שההתנהגות השתנתה בגרסה הנוכחית.הטקסט המלא של הדקות הראשונות בהרצאה «שימוש ב-Cookies בצד שרת ב-NodeJS» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
כעת אנחנו רוצים להצליח לשמור את הקוקי כלשהו ולקרוא אותו וגם לנקות את כל הקוקי'ס מצד השרת. חשוב להבין, הקוקי'ס לא נשמרים בשרת אף פעם, קוקי זה משהו שנשמר ב-client side ופשוט נתון אינפורמטיבי שיש לו key וvalue ואנחנו יכולים לשמור סדרה של קוקי'ס, כמובן הרבה קוקי'ס.
ההגבלה היא סך הכל 4 קילו לאתר, לא הרבה, אבל אלה הקוקיז שאנחנו יכולים להתעסק איתם. אז אנחנו רוצים לבוא לפה, לאזור של הסרבר, ובואו נניח שנייצר לעצמנו איזה ראוט שנקרא סתם סייב קוקיז, וכאשר גולשים אליו, אז הוא מפעיל את הפונקציה הזאת, מקבל את ה-request response, ובשביל להצליח לבצע שמירה של קוקיז ולהתעסק עם קוקיז,
אנחנו בשלב הזה צריכים לבצע התקנה. ההתקנה, יש הרבה התקנות כמובן שמתעסקות עם קוקיז, אנחנו רוצים להתקין npmi את cookieparser, זאת התקנה פשוטה שמתעסקת עם קוקיז.
בואו נבצע את ההתקנה, וכעת אנחנו יכולים לבוא לפה למעלה, const cookieparser require kiparser. כל מה שאנחנו צריכים לעשות, ראשית זה server.use.cookie.parser, זה משלב ב-request.cookies, מביא אותם ושם אותם ב-request, ובואו ניתן את אותם ה-cookies בדיוק שהיו מקודם.
אז יש לנו כאן את color, ו-color היה, value שלו היה red, בואו ניתן green, יש לנו פה key ו-value, ויש לנו כאן את היכולת לתת גם, זה כמובן יהיה non-persistent-cookie ובואו ניתן עוד אחד request-cookies number וניתן לו 456 מספר אחר ואנחנו יכולים לעשות persistent-cookie על ידי הכנסת מעין
options כאלה של max age וכמה זמן אנחנו רוצים שהקוקי תישמר. אז אנחנו רוצים h זה במילי שניות, 1000 מילי שניות זה שנייה אחת, כפול 60 זה דקה, כפול 60 זה שעה, כפול 24 זה בואו נניח ששמרנו את זה ליום אחד, בואו ניתן לו כפול 365 והנה יש לנו עכשיו בצורה ברורה זמן של שנה אחת ששמרנו את הקוקי.
כמובן שאנחנו יכולים לשמור איזה זמן שאנחנו רוצים. בואו ניתן כאן איזה console.log.saved וכמובן שאנחנו רוצים להחזיר תשובה ללקוח, זה יהיה response.json או send או פשוט end בשביל לסיים את ה-response עצמו.
ניקח את כל זה, נשכפל ל-read, זה היה read, read, קראנו לזה read אז נקרא גם פה read ואנחנו רוצים לקרוא את המידע, אז מה נעשה איתו? בואו נציג אותו על הקונסול, console.log ויש לנו request.cookies ופשוט אנחנו ניגשים למשתנה הנה ה-color הנה ה-number
ששמרנו ואנחנו יכולים כמובן גם להציג את כל אובייקט ה-cookies רק בכדי לראות שזה סך הכל אובייקט request.cookies עם כל המידע שהכנסנו בתוכו אורייט אז את זה אפשר לזרוק ובואו נעשה פה saved, load, בעצם אנחנו לא צריכים להציג פה כלום, נבצע end ל-request,
ונשאר לנו רק לנקות את ה-cookies, נשכפל, יש לנו פה פונקציה, clear cookies, ובשביל לנקות אנחנו יכולים לקרוא ל-response.clearPookie ולתת לה את ה-cookie שאנחנו רוצים, נניח color ויש לנו אפשרות לרוץ על כל ה-cookies,
response-cookies ופשוט לנקות אחת-אחת.