1. ホーム
  2. node.js

Node.jsで.txtファイルに一行を書き込む

2023-09-10 03:33:28

質問

Node.jsを使って、過去の行の前の行を.txtファイルに出力する簡単なロギングシステムを作りたいと思っています。しかし、私はNode.jsからのファイルシステム機能がどのように動作するのかわかりません。

どなたか説明していただけませんか?

どのように解決するのですか?

テキストファイルの途中にデータを挿入することは、簡単な作業ではありません。可能であれば、ファイルの最後に追記する必要があります。

テキストファイルにデータを追加する最も簡単な方法は、ビルドインの fs.appendFile(filename, data[, options], callback) 機能 から fs モジュール :

var fs = require('fs')
fs.appendFile('log.txt', 'new data', function (err) {
  if (err) {
    // append failed
  } else {
    // done
  }
})

しかし、何度もログファイルにデータを書き込む場合は fs.createWriteStream(path[, options]) 機能 の代わりに

var fs = require('fs')
var logger = fs.createWriteStream('log.txt', {
  flags: 'a' // 'a' means appending (old data will be preserved)
})

logger.write('some data') // append string to your file
logger.write('more data') // again
logger.write('and more') // again

を呼び出すたびに、Nodeは新しいデータをファイルに追加し続けます。 .write を呼び出すたびに、アプリケーションが終了するまで、 あるいは、手動で .end :

logger.end() // close string

なお logger.write は改行されないことに注意してください。データを改行に書き込むには

var writeLine = (line) => logger.write(`\n${line}`);
writeLine('Data written to a new line');