תרגילים / משימות ליום שני 02.11.20: הקדמה למשימות:
- יציתת פרוייקט NESTJS וקריאה לו AUTHENTICATE_TOKEN_EXAMPLE
- יצירת MODULE של USERS.
- יצירת CONTROLLER של USERS.
- יצירת 2 SERVICES אחד בשם USERS והשני AUTH
- יצירת 2 MIDDLEWARE אחד בשם MYLOGGER והשני בשם CHECK_TOKEN
- יצירת FILTER בשביל שגיאות בשם EXCEPTIONFILTER. משימות:
- לבנות מודל של USERS שמכיל את השיטות הבאות: כל יוזר צריך להכיל את התכונות הבאות: משתנה יחודי - ID, שם פרטי - FIRSTNAME, שם משפחה LASTNAME שם משתמש - USERNAME שצריך להיות מסוג EMAIL. וסיסמא - PASSWORD. ומשתנה אופציונלי בשם TOKEN (נא לבדוק איך עושים משתנה לא חובה). המשתמש הראשון שחייב להיות שם יהיה : {id : 1, username: "test", password: "test", firstname: "test", lastname: "Testing"} תוסיפו בבקשה רק עוד משתמש אחד (אתם מוזמנים להוסיף יותר, כמה ואיזה שאתם רוצים).
- להשתמש בSERVICE של USERS לעשות בו 2 שיטות שיטה להחזרת היוזרים הקיימים שנקראת GETALL השיטה תחזיר מערך של יוזרים או OBSERVABLE של מערך של יוזרים. שיטה שניה שתחזיר יוזר לפי הID שלו GETBYID: השיטה תחזיר יוזר בודד או OBSERVABLE של USER בודד: יוחזרו כל התכונות שלו. להשתמש בSERVICE של AUTH ולעשןת בו שיטה שנקראת AUTHENTICATE מטרת השיטה היא להעביר USERNAME וPASSWORD ולקבל TOKEN בחזרה מהשיטה הזו יחזור יוזר עם כל הפרטים חוץ מהPASSWORD ובמקומו יהיה הTOKEN. ערך הTOKEN יהיה "My-Token" כרגע לכולם.
- בUSER CONTROLLER יהיה 3 ROUTES של בקשת GET ל "/USERS" שתשתמש בSERVICE של USERS להחזיר בצורה של JSON את כל היוזרים במערכת בלי הסיסמא שלהם. אותו דבר רק לפי הID של יוזר נקבל מבקשת GET ל "id:/USERS" בצורה של JSON את כל הפרטים של המשתמש הבודד מבלי הסיסמא שלו. הROUTE בשני היה של בקשת POST ל'/users/authenticate' בקשה תשתמש בAUTH SERVICE בשישת הAUTHETICATE ותחזיר את כל הפרטים של המתשמש בלי סיסמא ועם TOKEN במקום.
- לכל אחד מהבקשות בCONTROLLER יש להעביר ל2 MIDDLEWARE ים , הראשון יעשה CONSOLE.LOG לבקשות הGET והPOST בצורה נפרדת: לבקשת הGET של ה "/users" וה"users/:id" ירשמו הפרמטרים שעוברים בHEADER של הבקשה והPARAMS של הבקשה. בCONSOLE ויועברו לMIDDLEWARE השני של CHECK_TOKEN , שיעשה בדיקה האם בHEADER או בPARAMS יש את הטוקן : "My-Token". אם כן אז הכל יעבור בהצלחה ויעביר את הבקשה העלה ואם לא אז יזרוק חריגה/שגיאה של HTTPFORBIDDEN בנוסף הMIDDLEWARE הראשון לבקשות POST ל "users/authenticate" יעשה CONSOLE.LOG לפרמטרים של BODY וזהו. והשני לא יעבוד על ה"users/authenticate" לבקשות מסוג POST
- במקרה של שגיאה מסוג של HTTPFORBIDDEN יש ליצור FILTER אשר יתלבש על השגיאה ולעשות שגיאה חדשה משלנו מסוג HTTPBADTOKEN ותכיל את ההודעה "WRONG TOKEN OR NOT GIVEN". (משימה למתקדמים) או לחליפין פשוט לעשות שהשגיאה שתציג את ההודעה משלנו "WRONG TOKEN OR NOT GIVEN".
- להשתמש בPOSTMAN ולבדוק שהכל עובד תקין. סופ"ש נעים , משימה לא קשה במיוחד מספיק לכם יום ראשון בשביל לעשות אותה, זאת משימה שבודקת את הידע שנלמד עד עכשיו, יש להגיע מוכנים עם המשימה ביום שני. שיהיה בהצלחה חברים.
A progressive Node.js framework for building efficient and scalable server-side applications, heavily inspired by Angular.
Nest framework TypeScript starter repository.
$ npm install
# development
$ npm run start
# watch mode
$ npm run start:dev
# production mode
$ npm run start:prod
# unit tests
$ npm run test
# e2e tests
$ npm run test:e2e
# test coverage
$ npm run test:cov
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please read more here.
- Author - Kamil Myśliwiec
- Website - https://nestjs.com
- Twitter - @nestframework
Nest is MIT licensed.