Как добавить текст в файл во время периодической активности в Node.js?

Как вы можете добавить текст в существующий файл во время периодической активности в Node.js? Моя цель - записать последовательные значения датчиков в текстовый файл.

Я могу создать файл и записать в него одно значение во время периодической активности, но каждый раз, когда я добавляю этот файл, старые данные стираются (или, возможно, новый файл создается вообще). Любые данные, которые были в файле до periodacctivity(), также будут потеряны.

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!

1 ответ

Решение

Вы можете просто использовать fs.appendFile() который обрабатывает все это для вас:

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', ...), но это не обязательно для вашей текущей задачи.

Другие вопросы по тегам