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()ます:

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

fs.appendFile()1 回の呼び出しでファイルを開いたり閉じたりする必要はありません。追加のためにファイルを開き、コンテンツをファイルの最後に書き込み、ファイルを閉じます。


元のコードでは、コード行がfs.open('SensorData.txt', 'w', ...)毎回最初からファイルを再作成するため、以前のすべてのコンテンツが消去されます。ファイルのオープンとクローズを自動的に管理するためfs.appendFile()、自分でファイルを開く必要はありません。追加するためにファイルを開きたい場合は、 を使用しますがfs.open('SensorData.txt', 'a', ...)、それは現在のタスクには必要ありません。

于 2015-10-28T01:59:28.677 に答える