Cómo escribir datos correctamente en un archivo en Node.js: síncrono, asíncrono y mediante streams
¡Hola a todos! Soy nuevo en Node.js y estoy tratando de entender cómo escribir datos en archivos. He leído mucha documentación, pero me da vueltas la cabeza con la cantidad de métodos: `writeFile`, `writeFileSync`, `appendFile`, `createWriteStream`... ¿Cuándo usar cada uno?
Tengo una aplicación simple para registrar las acciones del usuario. Quiero escribir cada acción en un archivo `log.txt`. Actualmente hago esto:
```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('Error de escritura:', err);
});
}
logAction('Usuario inició sesión');
logAction('Usuario hizo clic en el botón "Comprar"');
```
El problema es que a veces en el archivo solo aparece la última entrada, y a veces está completamente vacío. Sospecho que es debido a la asincronía, pero no entiendo cómo organizar correctamente la escritura secuencial.
También he oído sobre `fs.promises`, sobre `writeFileSy