קריאת קובץ
חלק מהיחידה יסודות 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, הבתים הגולמיים של הקובץ, במקום מחרוזת.
אתגר
קלהשלב הזה פותח פרויקט של כלי שורת הפקודה לניהול הערות שהוכן עבור הקורס, ולא את קובצי הפרויקט שלך מ־CommonJS Modules (כולל legacy/stats.cjs). העבודה הקודמת שלך נשארת בשיעור משלה. קרא את הקבצים שסופקו לפני עריכת store.js. העותק הזה כולל את כל הפקודות עד כה, וגם פקודה חדשה, clear.
כרגע כל הפעלה מתחילה עם אותן שלוש הערות שכתובות ב־store.js. במקום זאת, ההערות שלך צריכות להגיע מקובץ: notes.json, שאפשר לפתוח ב־Files.
- ב־
store.js, החלף את הרשימה הקבועה של שלוש ההערות.notesשל המאגר צריך להכיל את המערך ששמור ב־notes.json: קרא את הקובץ כטקסט, ואז המר את טקסט ה־JSON למערך. - אם
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;
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות Node.js
1הרצת JavaScript ב-Node
שלום, Nodeקריאת הפקודהארגומנטים של שורת הפקודהפקודותתרגלו בעצמכם: Express אונליין