تعد قراءة ملف JSON (تدوين كائن JavaScript) في Node.js مهمة مشتركة لمطوري الويب ، وخاصة بالنسبة لأولئك الذين يعملون مع التطبيقات الجانبية للخادم. في هذا البرنامج التعليمي ، تقوم بتنفيذ العملية وتعيين الخطوات لقراءة ملفات JSON بكفاءة مع كل من Node.js fs
الوحدة النمطية و fs-extra
حزمة NPM. دعونا نغمر عالم ملف JSON ونزولهم بمعرفة معالجة هذه المهمة بسلاسة!
جدول المحتويات #
مقدمة #
أصبحت JSON (JavaScript -ObjectNotation) حجر الزاوية في تبادل البيانات على الويب. إنه تنسيق مقروء من الإنسان يتم تحليله بسهولة بواسطة الآلات ، مما يجعله مثاليًا لملفات واجهات برمجة التطبيقات وملفات التكوين وأكثر من ذلك بكثير. إذا كنت تعمل مع Node.js ، فمن المحتمل أن تقابل ملفات JSON كثيرًا.
يقدم منشور المدونة هذا دليلًا واضحًا وموجزًا وعمليًا لقراءة ملفات JSON في Node.js. بغض النظر عما إذا كنت مطورًا متمرسًا أو يبدأ فقط ، فسوف تقوم في هذا البرنامج التعليمي بتجهيز المعرفة والتقنيات لعلاج بيانات JSON بأمان في مشاريع Node.js.
سوف تغطي نهجين:
- مع الأم
fs
الوحدة: هذه هي وحدة Node.js المدمجة للتفاعل مع الملف في نظام الملفات. ويوفر كل من الأساليب المتزامنة وغير المتزامنة لقراءة الملفات. - استخدم
fs-extra
حزمة NPM: هذه الحزمة توسيع وظائفfs
الوحدة النمطية التي توفر المزيد من الأساليب والودية وتبسيط عمليات الملفات الشائعة.
في نهاية هذا البرنامج التعليمي ، لديك فهم قوي لكلا الطريقتين ويمكنك اختيار النهج الذي يناسب احتياجاتك.
متطلبات #
قبل أن تغمر نفسك في الكود ، نتأكد من أن لديك المتطلبات التالية:
-
Node.js مثبتة: تأكد من تثبيتك على نظامك عبر Node.js. يمكنك تنزيل أحدث إصدار من LTS من موقع Node.js الرسمي. سوف تستخدم Node.js 22 لهذا البرنامج التعليمي. يمكنك التحقق من إصدار Node.js مع:
node --version
-
معرفة جافا سكريبت الأساسية: يساعدك الفهم الأساسي لبناء جملة JavaScript والمفاهيم على اتباع امتحانات الكود.
-
محرر الرمز: تحتاج إلى محرر رمز للكتابة وتحرير رمز JavaScript الخاص بك. بعض الخيارات الشائعة هي VS Code و Atom و Sublime Text و WebStorming.
لهذا البرنامج التعليمي ، استخدم واردات ESM وليس require
كما في عام 2024. في القسم التالي ، ستجد سجل بيانات المليارديرات من عام 2023 ، والذي يتم استخدامه كمثال على هذا الدليل.
مثال: بيانات المليارديرات من 2023 #
لتوضيح كيفية قراءة ملف JSON باستخدام Node.js ، استخدم مثالًا على البيانات على أفضل 100 ملياردير من 100 ملياردير من عام 2023. تأتي البيانات من Kaggle وتحتوي على تفاصيل مختلفة لهؤلاء الأشخاص. قمنا برعاية البيانات للتركيز على بعض السمات المهمة بحيث تكون إدارة هذا البرنامج التعليمي أسهل في إدارتها. توجد البيانات في الأصل بتنسيق CSV وتم تحويلها لهذا البرنامج التعليمي في JSON.
فيما يلي قسم من بيانات JSON التي تستخدمها. يتم حفظه في ملف يسمى billionaires-2023.json
. يمكن العثور على ملف البيانات الكامل في مستودع GitHub. يتم عرض قسم من البيانات للرجوع إليه أدناه:
[
{
"rank": 1,
"worth": 211000,
"name": "Bernard Arnault & family",
"gender": "M",
"category": "Fashion & Retail",
"country": "France",
"city": "Paris",
"source": "LVMH",
"industries": "Fashion & Retail",
"citizenship_country": "France",
"organization": "LVMH Moët Hennessy Louis Vuitton",
"title": "Chairman and CEO",
"birth_year": 1949
},
{
"rank": 2,
"worth": 180000,
"name": "Elon Musk",
"gender": "M",
"category": "Automotive",
"country": "United States",
"city": "Austin",
"source": "Tesla, SpaceX",
"industries": "Automotive",
"citizenship_country": "United States",
"organization": "Tesla",
"title": "CEO",
"birth_year": 1971
},
]
تمثل بيانات JSON هذه عددًا من الكائنات ، كل منها يتوافق مع الملياردير ويحتوي على سمات مثل الرتبة ، صافي الأصول ، الاسم ، الجنس ، الفئة ، بلد المنشأ والمزيد.
اقرأ ملف JSON مع FS # الأصلي
توفر وحدة FS الأصلية في Node.js طريقة سهلة للتفاعل مع نظام الملفات. سوف تفحص طريقتين لقراءة ملفات JSON fs
:
fs.readFile
: هذه الطريقة تقرأ الملف غير المتزامن بأكمله.fs.readFileSync
: هذه الطريقة تقرأ الملف بأكمله بشكل متزامن.
استخدام طرق غير متزامنة مثل fs.readFile
بالنسبة للعمليات غير المحفوظة ، يُنصح بشكل عام ، خاصة بالنسبة للملفات الأكبر. هذا يضمن أن يبقى تطبيقك رد الفعل بسرعة أثناء قراءة الملف.
اقرأ ملف JSON غير متزامن مع FS #
في ما يلي ، ستجد نموذج رمز لقراءة بيانات 2.240 مليار سنة في عام 2023 بطريقة غير متزامنة.
import { readFile } from 'node:fs/promises';try {
const data = JSON.parse(await readFile('billionaires-2023.json', 'utf8'));
console.log(data[1]);
} catch (err) {
console.error(`Error reading JSON file: ${err}`);
}
في هذا المثال:
- يمكنك استيراد وظيفة ملف القراءة المطلوبة من
node:fs/promises
وحدة للعمل مع الوعود وتقدم نهجا غير متزامن أكثر حداثة. - في
try
حاجز:- يمكنك قراءة الملف غير المتزامن باستخدام
await fs.readFile(filePath, 'utf8')
مواصفات الترميز كماutf8
. - يتم استخدام محتوى ملف القراءة في كائن JavaScript
JSON.parse(data)
.
يتم تسجيل بيانات الملياردير الثانوي Elon Musk على وحدة التحكم من البيانات التي تم تحليلها.
- يمكنك قراءة الملف غير المتزامن باستخدام
- في حالة حدوث خطأ أثناء العملية في العمليات
catch
كتلة ، يتم تسجيلها معconsole.error
.
نظرًا لأنك تستخدم الإصدار 22 ، فإن المستوى الأعلى متاح لوقت الانتظار. يمكنك القيام بالمثال node index.js
يتم عرض الطبعة التالية:
في الجزء التالي ، سوف تقرأ نفس الملف fs
لكن متزامن.
اقرأ ملف JSON بشكل متزامن مع FS #
بينما يوصى باستخدام الطريقة غير المتزامنة للاكتمال
انظر أيضًا كيفية قراءة ملف JSON بشكل متزامن.
import { readFileSync } from 'node:fs';try {
const data = JSON.parse(readFileSync('billionaires-2023.json', 'utf8'));
console.log(data[1]);
}
catch (err) {
console.error(`Error reading JSON file: ${err}`);
}
يشبه هذا المثال الإصدار غير المتزامن ، لكنهم يستخدمون المتزامن readFileSync
إجراء. يجب أن تدرك أن هذه الطريقة تمنع حلقة الحدث حتى يتم قراءة الملف بالكامل. ملف العينة هو 2.66 ميغابايت ، وهو ليس بهذا الحجم ، ولكن بالنسبة لملف كبير ، يمكن أن يكون هذا عملية مستهلكة للوقت وتشغيل وحدة المعالجة المركزية.
fs-extra
هي حزمة NPM شهيرة توسع وظائف الأم fs
الوحدة النمطية. وفقًا لاتجاهات NPM ، هناك أكثر من 105 مليون تنزيل في الأسبوع. إنه يوفر المزيد من الأساليب الصديقة للمستخدم للعمل مع نظام الملفات ، بما في ذلك طريقة مريحة لعمليات نظام الملفات ، على سبيل المثال B. قراءة ملفات JSON.
قم بتنفيذ الأمر التالي لتثبيت FS-Extra:
npm install fs-extra
التالي fs-extra
حزمة NPM.
فيما يلي مثال على قراءة ملف JSON مع FS-Extra:
import { readJson } from 'fs-extra/esm';try {
const data = await readJson('billionaires-2023.json');
console.log(data[1]);
}
catch (err) {
console.error(`Error reading JSON file: ${err}`);
}
في هذا المثال:
- يستوردونهم
readJson
تعمل مباشرة من حزمة “FS-Extra”. - ال
readJson
تعامل الدالة على حد سواء قراءة الملف والتحليل في كائن JavaScript ، مما يبسط الكود.
بعد ذلك ، يأتي مثال قراءة ملفات JSON مع Node.js بطريقة متزامنة مع fs-extra
حزمة NPM.
يمكنك أيضا استخدام readJsonSync
كيفية قراءة ملف JSON المزامنة. ستجد أدناه مثالًا على استخدام readJsonSync
وظيفة في fs-extra
حزمة NPM:
import { readJsonSync } from 'fs-extra/esm';try {
const data = readJsonSync('billionaires-2023.json');
console.log(data[1]);
}
catch (err) {
console.error(`Error reading JSON file: ${err}`);
}
إنه نفس مثال Asynchronized أعلاه ؛ الفرق الرئيسي هنا هو أنه يقرأ الملف المتزامن.
يستخدم fs-extra
يمكن أن يقلل بشكل كبير من تعقيد الكود ويحسن قابلية القراءة ، خاصة عند تنفيذ عمليات الملفات العامة.
الكود بأكمله متاح في مستودع GitHub هذا للرجوع إليه.
دبلوم #
في هذا الدليل الشامل ، تعلمت كيفية قراءة ملفات JSON في Node.js مع كلا الأصليين fs
الوحدة النمطية و fs-extra
حزمة NPM. لقد فحصوا كل من النهج غير المتزامنة والمتزامنة وأبرزوا مزاياهم واعتباراتهم.
لقد درست أيضًا مثالاً في الممارسة العملية باستخدام بيانات المليارديرات لتوضيح كيفية تحليل بيانات JSON بشكل فعال والعمل معك في تطبيقات Node.js الخاصة بك. من خلال فهم المفاهيم والتقنيات المقدمة في هذا البرنامج التعليمي ، فهي مجهزة جيدًا لمعالجة أي مهمة يتم فيها قراءة بيانات JSON ومعالجتها في مشاريع Node.js الخاصة بهم.
تذكر تحديد أفضل طريقة لاحتياجاتك والنظر في عوامل مثل حجم الملف ومتطلبات الأداء وأسلوب الترميز الخاص بك. تعلم والبحث في قوة node.js لإنشاء تطبيقات ويب قوية وقابلة للتطوير.
إذا كان عليك معالجة بيانات JSON التي قرأتها ، فيمكنك أن تقرأ عن وظائف JavaScript -Sarray. إذا كنت تستخدم Nodemon لإعادة التشغيل التلقائي لخادم Node.js إذا قمت بتغيير رمز ، فستصبح أيضًا أكثر إنتاجية. ترميز سعيد!