Avatar ·

Como escrever dados em arquivos corretamente no Node.js: síncrono, assíncrono e através de streams?

Olá a todos! Sou novo no Node.js e estou tentando entender como escrever dados em arquivos. Li muita documentação, mas estou confuso com a quantidade de métodos: `writeFile`, `writeFileSync`, `appendFile`, `createWriteStream`... Quando usar cada um? Tenho uma aplicação simples para registrar ações do usuário. Quero escrever cada ação no arquivo `log.txt`. Atualmente, faço assim: ```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('Erro de escrita:', err); }); } logAction('Usuário entrou no sistema'); logAction('Usuário clicou no botão "Comprar"'); ``` O problema é que, às vezes, o arquivo contém apenas o último registro e, outras vezes, está vazio. Suspeito que seja por causa da assincronicidade, mas não entendo como organizar a escrita sequencial corretamente. Também ouvi falar sobre `fs.promises`, sobre `writeFileSy