كتابة الملفات باستخدام Node.js
كتابة ملف
أسهل طريقة لكتابة الملفات في Node.js هي استخدام واجهة برمجة التطبيقات fs.writeFile()
.
javascript
const fs = require('node:fs')
const content = 'Some content!'
fs.writeFile('/Users/joe/test.txt', content, err => {
if (err) {
console.error(err)
} else {
// تم كتابة الملف بنجاح
}
})
كتابة ملف بشكل متزامن
بدلاً من ذلك، يمكنك استخدام الإصدار المتزامن fs.writeFileSync
:
javascript
const fs = require('node:fs')
const content = 'Some content!'
try {
fs.writeFileSync('/Users/joe/test.txt', content)
} catch (err) {
console.error(err)
}
يمكنك أيضًا استخدام طريقة fsPromises.writeFile()
القائمة على الوعود التي يوفرها نموذج fs/promises
:
javascript
const fs = require('node:fs/promises')
async function example() {
try {
const content = 'Some content!'
await fs.writeFile('/Users/joe/test.txt', content)
} catch (err) {
console.log(err)
}
}
example()
بشكل افتراضي، ستستبدل هذه الواجهة البرمجية محتويات الملف إذا كان موجودًا بالفعل.
يمكنك تعديل الإعداد الافتراضي من خلال تحديد علم:
javascript
fs.writeFile('/Users/joe/test.txt', content, { flag: 'a+' }, err => [])
الأعلام التي ستستخدمها على الأرجح هي:
العلم | الوصف | يتم إنشاء الملف إذا لم يكن موجودًا |
---|---|---|
r+ | يفتح هذا العلم الملف للقراءة والكتابة | ❌ |
w+ | يفتح هذا العلم الملف للقراءة والكتابة كما يضع التدفق في بداية الملف | ✅ |
a | يفتح هذا العلم الملف للكتابة كما يضع التدفق في نهاية الملف | ✅ |
a+ | يفتح هذا التدفق الملف للقراءة والكتابة كما يضع التدفق في نهاية الملف | ✅ |
يمكنك إيجاد المزيد من المعلومات حول الأعلام في وثائق fs.
إضافة محتوى إلى ملف
إن إضافة محتوى إلى الملفات مفيد عندما لا تريد الكتابة فوق ملف بمحتوى جديد، ولكن بدلاً من ذلك إضافته إليه.
أمثلة
طريقة عملية لإضافة محتوى إلى نهاية ملف هي fs.appendFile()
(ونظيرتها fs.appendFileSync()
):
javascript
const fs = require('node:fs')
const content = 'Some content!'
fs.appendFile('file_log', content, err => {
if (err) {
console.error(err)
} else {
// done!
}
})
مثال باستخدام الوعود
فيما يلي مثال fsPromises.appendFile()
:
javascript
const fs = require('node:fs/promises')
async function example() {
try {
const content = 'Some content!'
await fs.appendFile('/Users/joe/test.txt', content)
} catch (err) {
console.log(err)
}
}
example()