2017-07-18 9 views
0

私はSlackチームからログを保存するプログラムを作成しようとしています。私はほとんどの作業を行っていますが、これまでにfs.appendFile()を使用することができませんでした。文書が存在しない場合はファイルを作成すると主張しているので、事前にfs.exists()またはfs.access()を使用しないでください。 ENOENTエラー。Node.jsでファイルを作成できませんfs.appendFile

これは私の関数である:

var storeLog = function (username, type, channelName, message) { 
    var pathArr = [loggingDir, type, channelName]; 
    var path = pathArr.join("/") + ".log"; 
    var fullMessage = username + ": " + message; 
    fs.appendFile(path, fullMessage + "\r\n", function (err) { 
     if (err && globalSettings.debugMode) { 
      console.error("Error saving log:\n", err); 
     } 
     else if (globalSettings.debugMode) { 
      console.info("Appended to " + path); 
      console.info(fullMessage); 
     } 
    }); 

}; 

globalSettings.debugModeが真である)

err変数は、この結果を持っています

{ Error: ENOENT: no such file or directory, open 'D:\path\in\settings\Direct Message\username.log' 
    at Error (native) 
    errno: -4058, 
    code: 'ENOENT', 
    syscall: 'open', 
    path: 'D:\\path\\in\\settings\\Direct Message\\username.log' } 
+2

ターゲットディレクトリを最初に作成する必要があります。 –

答えて

2

fs.appendFile()は、ディレクトリを作成する必要がありますファイルが存在しない場合は作成されます。それはあなたのためのディレクトリを作成することはありません。

fs.createWriteStream()の場合は、aフラグでも使用できます。

+0

ディレクトリが存在しない場合、起動時にいくつかのfs.mkdir()関数を追加しました。ただし、コールバックのエラーが真実ではないにもかかわらず、ディレクトリが作成されていない編集:今すぐ作業中 – Kieran

関連する問題