קובצי CSV הם פורמט נוח לאחסון נתונים, ואתה יכול להשתמש בהם בפרויקטים של Node.js כדי לטפל בכל דבר, החל מתצורה ועד נתונים גולמיים. הם יכולים לפשט את שיתוף המידע בין שתי אפליקציות, גם אם הן כתובות בשפות שונות.

ב-Node.js, אתה יכול להשתמש במספר שיטות כדי לקרוא ולכתוב קבצי CSV.

מדריך זה מראה לך כיצד להשתמש ב- fs מודול ו מהיר-csv חבילת NPM לקריאה וכתיבה של קבצי CSV.

הגדרת פרויקט

כדי לעקוב אחר המדריך הזה, ודא שיש לך את Node.js מותקן במחשב שלך. הפעל את הפקודה הזו כדי לבדוק:

node -v

זה אמור להחזיר מספר גרסה. אם אין לך את Node.js מותקן, עקוב אחר ההוראות כאן הדרכה להתקנה לעשות זאת.

בספרייה המועדפת עליך, צור תיקייה חדשה בשם parse-csv.

mkdir parse-csv

נווט אל parse-csv וליצור קובץ חדש. תן לזה שם parseCSV.js.

CD parse-csv
לגעתparseCSV.js

כעת תוכל להתחיל לעבוד עם CSV.

שימוש במודול fs

המודול fs (קיצור של מערכת קבצים) מכיל מספר פקודות לאינטראקציה עם מערכת הקבצים ב-Node.js.

קרא את כל הקובץ בבת אחת

ה readFile() ו readFileSync() פקודות מה fs מודול מאפשר לך לקרוא את תוכן הקובץ ב-Node.js. ההבדל בין הפקודות הללו הוא זה readFileSync()

instagram viewer
הוא סינכרוני - הוא חוסם JavaScript אחר מביצוע - תוך כדי readFile() הוא אסינכרוני, או לא חוסם.

מכיוון שקריאת קבצי CSV יכולה לקחת קצת זמן, במיוחד עבור קבצים גדולים, לרוב עדיף להשתמש בפקודה הבלתי חוסמת, readFile(), כפי שמוצג מטה.

const fs = לִדרוֹשׁ('fs');

fs.readFile('csvdemo.csv', 'utf8', function (שגיאה, נתונים) {
/* נתח נתונים */
});

אם אין לך קובץ CSV לדוגמה, אתה יכול ליצור אחד ממנו מוקארו. אתה יכול גם ללמוד איך לעשות ליצור קובץ CSV עַצמְךָ.

קרא שורה אחר שורה

בזמן readFile() עובד, הוא עתיר זיכרון מכיוון שהוא קורא את כל קובץ ה-CSV בבת אחת. זו בעיה, במיוחד כאשר עובדים עם קבצי CSV גדולים. חלופה היא לקרוא שורה אחת בכל פעם באמצעות ה fs.createReadStream() פקודה.

const fs = לִדרוֹשׁ("fs");
const readline = לִדרוֹשׁ("קריאת שורה");
const stream = fs.createReadStream("./csvdemo.csv");
const rl = readline.createInterface({ קֶלֶט: זרם });
תן נתונים = [];

rl.on("קַו", (שורה) => {
data.push (row.split(","));
});

rl.on("סגור", () => {
לְנַחֵם.log (נתונים);
});

כאן אתה מעביר את שם קובץ ה-CSV אל fs.createReadStream() כדי ליצור זרם קריא. זרמים מאפשרים לך לעבוד עם כמויות גדולות של נתונים בכך שהם מאפשרים לך לגשת אליהם בחתיכות.

לאחר שתיצור את הזרם הקריא, העבר אותו אל readline.createInterface() שיטה. ה קריאת שורה מודול מספק ממשק לקריאת הנתונים שורה אחת בכל פעם. כעת תוכל לדחוף כל שורה למערך הנתונים תוך כדי הקריאה.

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

שימוש ב-fast-csv

כדי לנתח קבצי CSV בצורה מהימנה, אתה יכול להשתמש בספרייה כמו מהיר-csv, שזמינה כחבילת npm. זה מקל לא רק לקרוא קבצי CSV אלא גם לעצב אותם.

כדי להתחיל, אתחול npm ולהתקין מהיר-csv.

npm init -y
npm i fast-csv

קרא קבצי CSV באמצעות Fast-CSV באופן הבא.

const fs = לִדרוֹשׁ('fs')
const csv = לִדרוֹשׁ('fast-csv');
const נתונים = []

fs.createReadStream('./csvdemo.csv')
.צינור(csv.לְנַתֵחַ({ כותרות: נכון }))
.עַל('שְׁגִיאָה', שגיאה => console.error (שגיאה))
.עַל('נתונים', שורה => data.push (שורה))
.עַל('סוֹף', () => console.log (נתונים));

בקוד שלמעלה, התחל ביצירת זרם קריא מקובץ ה-CSV ואז חבר אותו לשיטת הניתוח מ-CSV מהיר באמצעות צינור(). שימו לב שאתם מעבירים את אפשרות הכותרות אל csv.parse(). זה מדלג על השורה הראשונה. הגדר כותרות ל שֶׁקֶר אם השורה הראשונה של קובץ ה-CSV שלך אינה מכילה כותרות.

מכיוון שקובץ ה-CSV נקרא שורה אחת בכל פעם, אתה דוחף כל שורה למערך הנתונים. לאחר קריאת הקובץ כולו, תוכל לתפעל את התוכן של מערך הנתונים כרצונך.

יש יותר מדרך אחת לנתח CSV

קובצי CSV שימושיים לאחסון מערכי נתונים גדולים מכיוון שקל לנתח אותם. ב-Node.js, אתה יכול להשתמש במודול fs המובנה או בחבילות NPM.

השימוש בספריה כמו fast-csv הוא הרבה יותר קל וחזק יותר מאשר כתיבת קוד הניתוח שלך באופן ידני. כמה חבילות אחרות לניתוח CSV הן csv-parser ו מנתח אבא.

מדריך למתחילים לממשקי API של RESTful ב-Node.js

קרא הבא

לַחֲלוֹקצִיוּץלַחֲלוֹקאימייל

נושאים קשורים

  • תִכנוּת
  • תִכנוּת
  • JavaScript

על הסופר

מרי גאתוני (18 מאמרים שפורסמו)

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

עוד ממרי גאתוני

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים טכניים, ביקורות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחץ כאן כדי להירשם