קריאת קבצים על ידי שרת Node

קריאת קבצים על ידי שרת node

קריאת קבצים ע"י שרת Node

אחד השימושים הנפוצים ביותר של שרת ה Node.JS  הוא שרת קבצים . המהירות והנוחות בה הוא מתמודד עם קבצים בפורמטים שונים מהווים שיקול משמעותי בבחירתו לצורך זה . ה npm  , כ אקו-סיסטם משלים, מספק לנו כמובן מספר מודולים בדיוק לצרכים אלו . במדריך זה נסקור כמה מהאפשרויות שיש לנו לקריאת קבצים .

המודול הבסיסי ביותר (והמובנה) הוא מודול ‘fs’  . נדגים קריאת קובץ ע"י השימוש בו.

הסבר :

בשורה הראשונה אנו מצהירים על השימוש במודול ‘fs’

בשורה הבאה אנו קוראים את הקובץ ע"י הפונקציה readFile . חשוב לזכור שהפונקציה היא אסינכרונית !!

למעשה, כברירת מחדל, כל הפונקציות של המודולים השונים הן אסינכרוניות וזאת על מנת לנצל היטב המאפיין הכי בולט בצורת העבודה של שרת node  , ה non-blocking IO (נושא סופר חשוב זה הינו רלוונטי לדיון אחר) .   היות וצורת העבודה היא אסינכרונית, ולא ניתן להשתמש ב try-catch  כמו בקוד סינכרוני, אנחנו עושים שימוש ב callback function  המופעלת ברגע שפעולת קריאת הקובץ מסתיימת !!

הפונקציה מקבלת 2 פרמטרים : את השגיאה (אם היתה כזו במהלך קריאת הקובץ) ואת תוכן הקובץ אותו קראנו כמובן .

 

אדגים כעת שימוש במודול אחר, "עשיר" קצת יותר בשם ‘fs-extra’ . המודול הזה אינו מובנה ויש להורידו מה npm .  בקוד המצורף ישנן 2 הדגמות להעתקת קובץ : בצורה אסינכרונית (ברירית המחדל) ובצורה סינכרונית.

ניתן לשים לב כיצד בצורה הסינכרונית אנחנו עושים שימוש ב try-catch , שכן אנו יכולים לקבל את השגיאה אם קרתה הזמן אמת, בעוד שבצורה האסינכרונית, נקבל את השגיאה "בדיעבד" כפרמטר ל callback function  שתופעל לאחר שהפעולה הסתיימה .

 

בהדגמה האחרונה, נראה כיצד לקרוא תוכן של קובץ json . גם כאן, נעשה שימוש במודול חיצוני מאוד פופולרי בשם jsonfile .

גם כאן, קריאת הקובץ נעשית בצורה אסינכרונית. למודול ישנה גם הפונקציה המקבילה, readFileSync המאפשרת לקרוא את תוכן הקובץ בצורה סינכרונית.

 

לסיכום, ראינו מספר אפשרויות במספר מודולים לעבודה עם קובץ ע"י שרת ה Node.JS. לכל מודול היכולות ולפעמים ה"הרחבות" שלו. המשותף לכולם הוא כמובן צורת העבודה המומלצת והאסינכרונית, וזאת עקב אופן פעולת ה Processing Model  שכל כך מאפיין שרת זה .

רוצה להיות כוכב על ב  Node ? 

 

 

העתיד שלך בהייטק מתחיל כאן
צור איתי קשר עוד היום

דילוג לתוכן