Menu
CoddyTech

קריאת קובץ

חלק מהיחידה יסודות Node.js במסלול ה-Node.js של Coddy. שיעור 12 מתוך 33.

בכל הרצה מתחילים מאותן שלוש הערות, כי הן נשמרות בזיכרון בלבד.

readFileSync(path, 'utf8') מתוך node:fs קוראת קובץ כמחרוזת. קובץ הערות מכיל JSON, פורמט טקסט לנתונים שנכתבים כמו מערכים ואובייקטים ב-JavaScript, ו-JSON.parse הופכת את הטקסט הזה למערך. קריאה של קובץ שאינו קיים גורמת לשגיאת ENOENT, ולכן צריך לבדוק קודם באמצעות existsSync. בדוגמה נעשה שימוש ב-condition ? a : b, שמחזיר את a כשהתנאי נכון ואת b כשהוא לא נכון.

import { existsSync, readFileSync } from 'node:fs';

const scores = existsSync('scores.json')
    ? JSON.parse(readFileSync('scores.json', 'utf8'))
    : [];
console.log(scores.length);

בלי 'utf8' מתקבל Buffer, הבתים הגולמיים של הקובץ, במקום מחרוזת.

challenge icon

אתגר

קל

השלב הזה פותח פרויקט של כלי שורת הפקודה לניהול הערות שהוכן עבור הקורס, ולא את קובצי הפרויקט שלך מ־CommonJS Modules (כולל legacy/stats.cjs). העבודה הקודמת שלך נשארת בשיעור משלה. קרא את הקבצים שסופקו לפני עריכת store.js. העותק הזה כולל את כל הפקודות עד כה, וגם פקודה חדשה, clear.

כרגע כל הפעלה מתחילה עם אותן שלוש הערות שכתובות ב־store.js. במקום זאת, ההערות שלך צריכות להגיע מקובץ: notes.json, שאפשר לפתוח ב־Files.

  1. ב־store.js, החלף את הרשימה הקבועה של שלוש ההערות. notes של המאגר צריך להכיל את המערך ששמור ב־notes.json: קרא את הקובץ כטקסט, ואז המר את טקסט ה־JSON למערך.
  2. אם notes.json לא קיים, המאגר מתחיל במערך ריק במקום להיעצר עם שגיאה. בדוק שהקובץ קיים לפני קריאתו.

notes.json מתחיל עם שתי הערות, לכן node notes.js list מדפיס:

Notes for you
1. Buy milk
2. Call Ada

אם אין notes.json, הוא מדפיס:

Notes for you
No notes yet

יש לשנות רק את store.js. notes.js כבר מדפיס No notes yet כשהמאגר ריק.

נסה זאת: הקלד list בתיבה שאחרי $ node notes.js והקש Enter. תראה את שתי ההערות מהקובץ. לאחר מכן הקלד clear. הפקודה הזאת כבר נמצאת ב־notes.js: היא מוחקת את notes.json ומדפיסה Deleted notes.json. הקלד שוב list: תראה No notes yet. לפני שתלחץ על „בדיקה”, לחץ על Reset files כדי להחזיר את notes.json, כי הבדיקות זקוקות לו.

נסו בעצמכם

// טען את הפתקים מ-notes.json במקום מהרשימה הזו.
const store = {
    notes: ['Buy milk', 'Call Ada', 'Water the plants'],
    add(text) {
        this.notes.push(text);
        return this.notes.length;
    },
};

export default store;
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות Node.js

תרגלו בעצמכם: Express אונליין