Я пытаюсь создать структуру, похожую на базу данных, используя файлы json в качестве системы хранения, и я разработал метод в утилитарном классе, чтобы помочь с этим, однако я не могу использовать его в зависимости от пути к местуЯ хочу написать в.
Я установил, что метод работает, но только в некоторых путях, я знаю, что путь правильный каждый раз, но некоторые пути просто оставляют программу зависшей;не выдает никаких ошибок и даже журналов отладки, которые я оставил.
Вот метод, который сохраняет объект по выбранному пути.
/*
** Saves `file` object into `path`.
** Will attempt backup first, and may reload a backup on errors
*/
save: function(path, file) {
this.backup(path, file, () => {
FS.writeFile(path, JSON.stringify(file), (err) => {
if (err) {
this.log(err, this.LogTypes.ERROR);
this.log(`Something wrong happened, FS.writeFile operation on '${path}' failed!`, this.LogTypes.ERROR);
if (FS.existsSync(`${path}.bak`)) {
this.log(`Reverting '${path}' to backup!`, this.LogTypes.DATABASE);
FS.copyFile(`${path}.bak`, `${path}`, (err) => {
if (err) {
this.log(err, this.LogTypes.ERROR);
this.log(`Unable to restore backup from '${path}.bak'! '${path} may have been corrupted or destroyed!'`, this.LogTypes.ERROR);
} else this.log(`'${path}' has been restored to the latest backup successfully.`, this.LogTypes.DATABASE);
});
} else this.log(`Backup for '${path}' was not found, cannot restore backup!\nPlease make sure that ${path} is not damaged, or is an operation-critical file, and restart the bot.`, this.LogTypes.ERROR);
} else {
this.log(`'${path}' has been saved successfully!`, this.LogTypes.DATABASE);
}
});
});
}
Его реализация в коде осуществляется посредством использованияиз Utils.save("path"; Object)