
delete לנתיב /products/delete/ ואחריו ה-id.redirect לרשימת המוצרים, כי אין מה למחוק. אם קיים, מבצעים render לדף delete עם המוצר.details.ejs ל-delete.ejs, ושואלים "Are you sure you want to delete this product?" עם השם, המחיר, המלאי והתמונה. מוחקים את הקישורים edit ו-delete, ומשאירים back to list מחוץ לטופס.action שמצביע על /products/delete/ עם ה-id, ו-method="post". טופס HTML תומך רק ב-GET וב-POST, לא ב-put, patch או delete. את אלה אפשר היה להשתמש רק עם AJAX.router.post ל-/delete/:id. מקבלים את ה-id, ו-await ל-deleteProduct של ה-products logic. אין צורך בולידציה.fs, בודקים אם קיים קובץ בנתיב assets/images/products/<id>.jpg, ואם כן מוחקים אותו ב-unlink. אם המחיקה נכשלת, אין מה לעשות מלבד להשאיר את הקובץ. בסיום עושים redirect לרשימה.הטקסט המלא של הדקות הראשונות בהרצאה «מחיקת מוצר קיים בנוד NodeJS» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
הדבר האחרון שנשאר לנו לבצע זה לאפשר למשתמש למחוק מוצר. כאן אנחנו רוצים לגשת שוב פעם ל-Details ולהוסיף למשתמש עוד לינק שיאפשר to delete את המוצר.
במובן אנחנו רוצים להפנות אותו לאיזה דף שישאל אותו אם אתה באמת רוצה למחוק את המוצר הזה, להציג לו את הפרטים של המוצר ואז רק אם המיוזר מאשר שהמוצר יימחק.
יש לנו כאן את הפרודקס delete, יש לנו את ה-id, לאן זה מפנה אותנו? כאן אנחנו רוצים לגשת לקונטרולר ולבנות שוב פעם משהו דומה למה שעשינו מקודם. בואו נעתיק קודם כל את הגט של ה-edit שהוא מאוד דומה לגט של ה-delete.
במקום edit יש לנו delete, יש לנו את ה-id כי אנחנו רוצים לקבל אותו, הנה ה-id שלו, ואנחנו רוצים לבצע מחיקה של המוצר. אז דבר ראשון, מה שכדאי לבצע זה לראות האם באמת קיים לנו מוצר כזה.
בואו נבצע שאלה. אם not product, סורי, רגע, זה אמור להיות פה. אם not product, מה שאנחנו רוצים זה או להחזיר לו 404 או להפנות אותו נניח לכל המוצרים.
האמת, אנחנו לא רוצים סתם להחזיר לו איזושהי הודעת 404 על מפיקה של אין מוצר, אז נעשה לו רספונס רידיירקט לכל המוצרים, כי אין את המוצר הזה, אז הכל בסדר, אין לנו מה להחזיר לך הודעת שגיאה.
אם יש את המוצר, מה שאנחנו רוצים לעשות, זה אפשר למחוק, תכלס זה אותו הדבר, מה שאנחנו רוצים לעשות זה להפנות אותו לדף delete שאנחנו צריכים לבנות ולתת לו את הפרטים של המוצר בצורה כזאת.
אז בואו נבנה את דף ה-delete הזה שלמעשה הוא דומה לדף ה-details הזה. אם אני חושב נכון, בואו נשכפל את ה-details, מה יכול להיות רע? delete.
ומה שאנחנו רוצים לעשות זה לשאול את המשתמש של ה-RU-Tool You want to delete this product? ולתת לו כאן את כל המידע לגבי המוצר למחיקה. יש לנו את השם שלו, את ה-Price, את ה-Stock, יש לנו את התמונה, יש לנו כאן גם אפשרות לתת לו Back to List, אנחנו לא רוצים את אלה, לא הגיוני שמפה הוא יעשה לי edit או delete
ואנחנו כן רוצים לעטוף את כל המידע הזה באיזשהו form למרות שלא בהכרח היינו חייבים לעטוף הכל היינו יכולים לעטוף רק חלק אבל בואו נעטוף את זה באיזשהו form אני רוצה רגע לראות אבל ב-create זה היה מחוץ ל-form סבבה אז גם פה זה יהיה מחוץ ל-form רק בשביל לשמור על אחידות.
פורם אמור to action ל-products/delete עם ה-ID של המוצר. בואו ניקח כאן product ID, המתוד ו-post. שוב, לפורם יש רק get או post, אין לו put, patch ו-delete.
זה שייך לעולם ה-HTML. לכן הקונטרולרים שלנו, כאשר אנחנו שולחים בחזרת המידע, הנה אנחנו יכולים לראות את זה גם פה, עשינו פוסט אפילו שרצינו to add it כי זה לא restful service אנחנו לא שולחים את המידע על ידי אג'קס או משהו כזה שכן יש שם אפשרות להשתמש בפוסט,
פוט, פאץ' ודיליט בגלל שזה פורם זה רק פוסט או גט ולכן אנחנו מחויבים להשתמש או בגט או בפוסטים פה.
אז בואו נסתכל מה עוד נשאר לנו יש לנו פה את כל המידע של המוצר כאן אנחנו רוצים איזשהו לחצן יגיד למשתמש delete יש לנו כאן למטה את ה-back to list נראה לי שפה יש לנו רק את הפוטר אני לא רואה עוד איזה משהו נוסף ואנחנו יכולים לגשת ולבנות את הפונקציית פוסט הזאת אבל לפני זה בואו נבדוק עד כאן איך זה עובד
אני הולך לצ'אי אני עומד delete אני לוחץ על delete וכמובן ששכחתי להריץ את זה שוב פעם פרודקט שי דיליט יופי אריו שוי רנטו דיליט טיס פרודקט בלה בלה בלה הנה לחצן דיליט