无法使用 Node.js fs.appendFile 创建文件

Kie*_*ran 2 javascript fs node.js

我一直在尝试创建一个程序来保存 Slack 团队的日志。我已经完成了大部分工作,但到目前为止无法成功使用fs.appendFile(),因为文档声称如果文件不存在,它将创建该文件(并且不使用fs.exists()fs.access()事先检查),但我收到 ENOENT 错误。

这是我的功能:

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);
        }
    });

};
Run Code Online (Sandbox Code Playgroud)

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' }
Run Code Online (Sandbox Code Playgroud)

Mon*_*aya 9

fs.appendFile()要求您创建一个目录,如果该文件不存在,它将在其中创建该文件。它不会为您创建目录。

在这种情况下,fs.createWriteStream()您也可以与标志一起使用a