אז עכשיו יש לך handler ל-endpoint חדש ששמו create-post/
. השלב הבא הוא למצוא את הפוסט לבלוג שלנו.
התוכן של הפוסט בבלוג שלך מוסתר בתוך האובייקט req
איפה שהוא.
לרוב, היית מחלצת אותו מתוך req.body
.
נסי להדפיס לקונסול את req.body
עכשיו.
קיבלת undefined
? אל תדאגי, זה בסדר.
כאשר מידע נשלח אל השרת במתודת POST
כאובייקט FormData
, עלינו לעשות דברים קצת אחרת כדי לגשת אל הנתונים בתוך הבקשה.
אנחנו צריכות עוד פונקצית middleware, משהו שיוכל לחלץ את המידע מתוך אובייקט ה-FormData
.
בשביל זה אנחנו נשתמש ב-express-formidable
, זוהי עוד שכבת middleware ב-Express.
מתודה זו תחלץ את המידע מהבקשה ותהפוך אותה לזמינה בשבילך ב-req.fields
.
הפעם, express-formidable
לא קיימת עדיין, ונצטרך להתקין אותה במיוחד.
לכי לטרמינל שלך והתקיני את express-formidable
npm install express-formidable --save
הדבר הבא שעליך לעשות הוא להוסיף require
לספריית express-formidable
, על מנת שתוכלי להשתמש בה בקוד שלך.
ב-JavaScript אי אפשר להשתמש במקפים בשמות משתנים, לכן נקרא למשתנה var formidable
.
הוסיפי זאת בראש הקובץ server.js
, ליד ה-require
הנוספים בקוד
var formidable = require('express-formidable');
כעת, במקום כלשהו בין ה-require
-ים ובין ה-endpoint של create-post/
הוסיפי את הקוד הבא:
app.use(formidable());
לבסוף, בתוך הפונקציה של create-post/
הוסיפי את הקוד הבא:
console.log(req.fields);
התחילי מחדש את השרת שלך, ונסי שוב לכתוב פוסט חדש לבלוג שלך.
כעת, תוכלי לראות את האובייקט בקונסול שלך. ה-key אמור להיות blogpost
, בדיוק כמו השם במאפיין בטופס ה-HTML. הערך ב-blogpost
יהיה ההודעה שלך.