
findIndex מחזירה את מיקום המוצר במערך לפי ה-ID. אם המוצר לא נמצא, התוצאה היא מינוס אחד.splice מוחק את האיבר שבאינדקס שנמצא, ורק אם האינדקס גדול או שווה לאפס, כלומר המוצר קיים.sendStatus(204) בלי תוכן, לפי המוסכמה.הטקסט המלא של הדקות הראשונות בהרצאה «מחיקת מוצר - קורס NodeJS» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
וכל מה שנשאר לנו לעשות בשביל להשלים חמשת הראוץ וששת הראוץ, יש לנו שישה ראוץ סך הכל, אחד תביא לי את כל המוצרים, השני תביא לי מוצר בודד, תוסיף לי מוצר, זה שלוש, ארבע זה תעדכן לי מוצר מלא, חמש תעדכן לי מוצר חלקי, ושש זה תמחק לי מוצר.
בשביל לעשות את זה נשארנו רק את ה-delete, ולפני שנתעסק עם הקונטרולר, בואו נבנה את הפונקציה המתאימה לתוך ה-Business Logic. אז בואו נבנה כאן async function delete product async, בדיוק כמו שהיה לנו פה, update product async, delete product async. לצורך מחיקה אנחנו לא צריכים לקבל את כל המוצר, אנחנו צריכים
לקבל רק את ה-ID שלו. אז הנה יש לנו פה את ה-ID, אנחנו מאתרים את כל המוצרים ומאתרים את האינדקס של המוצר שאותו אנחנו רוצים למחוק, כי יש לנו פה מערך.
מובן שזה רק בגלל שיש לנו את המוצרים כמערך. אם היה לנו דאטאבייס אז היינו צריכים לייצר איזו שאילתא שמוחקת את המוצרים מהדאטאבייס. const index = יש לנו products.findindex זאת פונקציה שלפי קוד שאנחנו נותנים לה מאתרת את האינדקס של המוצר כי במערך יש פונקציה שמוחקת לפי אינדקס אם האינדקס נמצא במילים אחרות גדול שווה אפס.
רק אז אנחנו רוצים לגשת למערך product.splice זאת הפונקציה שמבצעת מחיקה. היא שואלת אותנו תגידו באיזה אינדקס אתם רוצים למחוק?
הנה האינדקס שלנו. כמה פריטים אתם רוצים למחוק? פריט אחד והיא תמחק אותו מהקולקשן. אחרי שהיא מחקה מהקולקשן אנחנו רוצים לשמור את כל הקולקשן שוב לקובץ.
הנה יש לנו את השמירה עצמה והשמירה כמובן מתבצעת רק אם האינדקס אכן נמצא. אז אנחנו עכשיו מחצינים את הפונקציה הזאת והביזנס לוג'יק תומך במצב של מחיקה מקובץ או בהמשך זה יהיה מידאטאבייס.
שימו לב שאם ה-ID לא נמצא לפי המוסכמה אני לא עושה שום דבר, אני לא מחזיר ללקוח נעל או מחזיר לו שיש לו שגיאת 404. פשוט הכל בסדר, לא מצאת אל תמחק.
עכשיו אנחנו רוצים לבצע את הראוט הנכון. מה שאני אעשה, אני אעתיק.