كيفية كتابة البيانات إلى ملف في Node.js: بشكل متزامن، غير متزامن، وعبر التدفقات
مرحبًا بالجميع! أنا مبتدئ في Node.js وأحاول فهم كيفية كتابة البيانات إلى الملفات. قرأت الكثير من الوثائق، لكن رأسي يدور من كثرة الطرق: `writeFile`، `writeFileSync`، `appendFile`، `createWriteStream`... متى نستخدم كل منها؟
لدي تطبيق بسيط لتسجيل إجراءات المستخدم. أريد كتابة كل إجراء إلى ملف `log.txt`. حاليًا أفعل ذلك بهذه الطريقة:
```javascript
const fs = require('fs');
function logAction(action) {
const data = `${new Date().toISOString()} - ${action}\n`;
fs.writeFile('log.txt', data, (err) => {
if (err) console.error('خطأ في الكتابة:', err);
});
}
logAction('المستخدم سجل الدخول إلى النظام');
logAction('المستخدم ضغط على زر "شراء"');
```
المشكلة هي أنه في بعض الأحيان يكون في الملف آخر إدخال فقط، وأحيانًا يكون فارغًا تمامًا. أظن أن السبب هو عدم التزامن (asynchrony)، لكنني لا أفهم كيفية تنظيم الكتابة المتسلسلة بشكل صحيح.
كما سمعت عن `fs.promises`، وعن `writeFileSync`...