0

如何在 Node.js 的周期性活动期间将文本附加到现有文件?我的目标是将连续的传感器值记录到文本文件中。

我可以在定期活动期间创建一个文件并向其写入一个值,但是每次我附加该文件时,旧数据都会被删除(或者可能会完全创建一个新文件)。在periodicactivity() 之前文件中的任何数据也会丢失。

fs.open('SensorData.txt', 'w', function(err, data) {
if (err) {
    console.log("ERROR !! " + err);
} else {
    fs.appendFile('SensorData.txt', content, function(err) {
        if (err)
            console.log("ERROR !! " + err);
        fs.close(data, function() {
            console.log('written success');
        })
    });
}

我在堆栈交换中找到了上面的代码,但我无法使其在这种情况下发挥作用。我是 Node.js 的新手,我确信有更好的方法来完成我的任务。我将不胜感激任何意见。

谢谢jfriend00!

4

1 回答 1

0

您可以使用fs.appendFile()which 为您处理这一切:

fs.appendFile('SensorData.txt', content, function(err) {
    if (err) {
        console.log("error appending data to SensorData.txt");
    } else {
        // data appended successfully
    }
});

使用时您无需打开或关闭文件,fs.appendFile()因为它在一次通话中为您完成所有操作。它将打开文件进行追加,然后将内容写入文件末尾,然后关闭文件。


在您的原始代码中,该行代码fs.open('SensorData.txt', 'w', ...)每次都会从头开始重新创建文件,从而清除所有以前的内容。由于fs.appendFile()自动为您管理文件的打开和关闭,因此无需自己打开文件。如果您想打开一个文件进行附加,您可以使用fs.open('SensorData.txt', 'a', ...),但这对于您当前的任务来说不是必需的。

于 2015-10-28T01:59:28.677 回答