قراءة الملفات باستخدام Node.js
أبسط طريقة لقراءة ملف في Node.js هي استخدام طريقة fs.readFile()
، و تمرير مسار الملف، والترميز، ودالة الرد التي سيتم استدعاؤها مع بيانات الملف (و الخطأ):
javascript
const fs = require('node:fs')
fs.readFile('/Users/joe/test.txt', 'utf8', (err, data) => {
if (err) {
console.error(err)
return
}
console.log(data)
})
بدلاً من ذلك، يمكنك استخدام الإصدار المتزامن fs.readFileSync()
:
javascript
const fs = require('node:fs')
try {
const data = fs.readFileSync('/Users/joe/test.txt', 'utf8')
console.log(data)
} catch (err) {
console.error(err)
}
يمكنك أيضًا استخدام طريقة fsPromises.readFile()
القائمة على الوعود التي يوفرها مُعامل fs/promises
:
javascript
const fs = require('node:fs/promises')
async function example() {
try {
const data = await fs.readFile('/Users/joe/test.txt', { encoding: 'utf8' })
console.log(data)
} catch (err) {
console.log(err)
}
}
example()
تقوم كل من fs.readFile()
و fs.readFileSync()
و fsPromises.readFile()
بقراءة المحتوى الكامل للملف في الذاكرة قبل إرجاع البيانات.
هذا يعني أن الملفات الكبيرة ستؤثر بشكل كبير على استهلاك الذاكرة وسرعة تنفيذ البرنامج.
في هذه الحالة، يكون الخيار الأفضل هو قراءة محتوى الملف باستخدام التدفقات.