0

次のコードを使用して、共通ファイルに書き込みます。

fs.appendFile('log.txt', str, function (err) {
    console.log("error writing file");
  });

複数の関数呼び出しから同時に呼び出されます。ファイルの書き込み操作は正しく完了しますが、「ファイルの書き込みエラー」というエラーがスローされます。

このコードを記述/実行するためのクリーンな方法は何ですか。書き込み関数がジョブを終了するまで、各呼び出しでI/O操作を待機する必要があります。

4

2 に答える 2

8

実際には、ifが欠落しています-errが設定されているかどうかを確認する必要があります。

fs.appendFile('log.txt', str, function (err) {
    if (err) console.log("error writing file");
  });

それ以外の場合は、追加のたびにコールバックが呼び出されるため、メッセージが出力されます。

于 2013-03-20T19:55:38.257 に答える
3

ロギングモジュールの基本的な例を次に示します。

var fs = require('fs');

var logStream = fs.createWriteStream('log.txt', {flags:'a'});

function log (str) {
  logStream.write(str);
}

module.exports = log;
于 2013-03-20T18:06:19.183 に答える