I have been trying to create a program which saves logs from a Slack team. I have most things working, but have so far been unable to use fs.appendFile() successfully, as the documentation claims it will create the file if it doesn't exist (and not to use fs.exists() or fs.access() beforehand to check), but I'm getting an ENOENT error.
This is my function:
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 is true)
The err variable has this result:
{ 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() requires you to create the directory in which it will create the file if it doesn't exist. It wont create the directory for you.
It is also the case for fs.createWriteStream() that you could also use with the a flag.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With