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