我一直在尝试创建一个程序来保存 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);
}
});
};
(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' }
fs.appendFile()
如果文件不存在,则要求您创建将在其中创建文件的目录。它不会为您创建目录。
这也是fs.createWriteStream()
您也可以与a
标志一起使用的情况。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句