Code Monkey home page Code Monkey logo

nestjs-home-work's Introduction

תרגילים / משימות ליום שני 02.11.20: הקדמה למשימות:

  1. יציתת פרוייקט NESTJS וקריאה לו AUTHENTICATE_TOKEN_EXAMPLE
  2. יצירת MODULE של USERS.
  3. יצירת CONTROLLER של USERS.
  4. יצירת 2 SERVICES אחד בשם USERS והשני AUTH
  5. יצירת 2 MIDDLEWARE אחד בשם MYLOGGER והשני בשם CHECK_TOKEN
  6. יצירת FILTER בשביל שגיאות בשם EXCEPTIONFILTER. משימות:
  7. לבנות מודל של USERS שמכיל את השיטות הבאות: כל יוזר צריך להכיל את התכונות הבאות: משתנה יחודי - ID, שם פרטי - FIRSTNAME, שם משפחה LASTNAME שם משתמש - USERNAME שצריך להיות מסוג EMAIL. וסיסמא - PASSWORD. ומשתנה אופציונלי בשם TOKEN (נא לבדוק איך עושים משתנה לא חובה). המשתמש הראשון שחייב להיות שם יהיה : {id : 1, username: "test", password: "test", firstname: "test", lastname: "Testing"} תוסיפו בבקשה רק עוד משתמש אחד (אתם מוזמנים להוסיף יותר, כמה ואיזה שאתם רוצים).
  8. להשתמש בSERVICE של USERS לעשות בו 2 שיטות שיטה להחזרת היוזרים הקיימים שנקראת GETALL השיטה תחזיר מערך של יוזרים או OBSERVABLE של מערך של יוזרים. שיטה שניה שתחזיר יוזר לפי הID שלו GETBYID: השיטה תחזיר יוזר בודד או OBSERVABLE של USER בודד: יוחזרו כל התכונות שלו. להשתמש בSERVICE של AUTH ולעשןת בו שיטה שנקראת AUTHENTICATE מטרת השיטה היא להעביר USERNAME וPASSWORD ולקבל TOKEN בחזרה מהשיטה הזו יחזור יוזר עם כל הפרטים חוץ מהPASSWORD ובמקומו יהיה הTOKEN. ערך הTOKEN יהיה "My-Token" כרגע לכולם.
  9. בUSER CONTROLLER יהיה 3 ROUTES של בקשת GET ל "/USERS" שתשתמש בSERVICE של USERS להחזיר בצורה של JSON את כל היוזרים במערכת בלי הסיסמא שלהם. אותו דבר רק לפי הID של יוזר נקבל מבקשת GET ל "id:/USERS" בצורה של JSON את כל הפרטים של המשתמש הבודד מבלי הסיסמא שלו. הROUTE בשני היה של בקשת POST ל'/users/authenticate' בקשה תשתמש בAUTH SERVICE בשישת הAUTHETICATE ותחזיר את כל הפרטים של המתשמש בלי סיסמא ועם TOKEN במקום.
  10. לכל אחד מהבקשות ב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
  11. במקרה של שגיאה מסוג של HTTPFORBIDDEN יש ליצור FILTER אשר יתלבש על השגיאה ולעשות שגיאה חדשה משלנו מסוג HTTPBADTOKEN ותכיל את ההודעה "WRONG TOKEN OR NOT GIVEN". (משימה למתקדמים) או לחליפין פשוט לעשות שהשגיאה שתציג את ההודעה משלנו "WRONG TOKEN OR NOT GIVEN".
  12. להשתמש בPOSTMAN ולבדוק שהכל עובד תקין. סופ"ש נעים , משימה לא קשה במיוחד מספיק לכם יום ראשון בשביל לעשות אותה, זאת משימה שבודקת את הידע שנלמד עד עכשיו, יש להגיע מוכנים עם המשימה ביום שני. שיהיה בהצלחה חברים.

Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications, heavily inspired by Angular.

NPM Version Package License NPM Downloads Travis Linux Coverage Gitter Backers on Open Collective Sponsors on Open Collective

Description

Nest framework TypeScript starter repository.

Installation

$ npm install

Running the app

# development
$ npm run start

# watch mode
$ npm run start:dev

# production mode
$ npm run start:prod

Test

# unit tests
$ npm run test

# e2e tests
$ npm run test:e2e

# test coverage
$ npm run test:cov

Support

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.

Stay in touch

License

Nest is MIT licensed.

nestjs-home-work's People

Watchers

Chaim Bar-Or avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.