如何在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('用户点击了“购买”按钮');
```
问题在于,有时文件中只有最后一条记录,有时甚至完全为空。我怀疑这是因为异步操作,但不知道如何正确组织顺序写入。
另外,我还听说过`fs.promises`和`writeFileSync`……