我一直在试图创建一个程序,以保存日志从一个斯莱克团队。我已经完成了大部分工作,但到目前为止还无法成功地使用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' }发布于 2017-07-18 09:30:06
fs.appendFile()要求您创建一个目录,如果该目录不存在,它将在其中创建该文件。它不会为您创建目录。
fs.createWriteStream()的情况也是如此,您也可以在a标志中使用。
https://stackoverflow.com/questions/45161765
复制相似问题