Я пытаюсь очистить мою папку с музыкой для путей к файлу mp3 и сохранить ее в моей БД. Вот соответствующая часть кода:Forerunner DB не сохраняется в узле (электрон)
const ForerunnerDB = require("forerunnerdb");
const fdb = new ForerunnerDB();
const db = fdb.db("DB");
db.persist.dataDir('/data');
let songCollection = db.collection("songs");
function generateLibrary(path) {
if (!fs.existsSync(path)) {
console.log("Directory '", path ,"' does not exist.");
return;
}
fs.readdir(path, function(err, results) {
for (let item of results) {
let curFilePath = pathTools.join(path, item);
fs.lstat(curFilePath, function(err, stats) {
if (stats.isDirectory()) {
saveDB(generateLibrary(curFilePath)); // Save between directories
} else if (pathTools.extname(curFilePath) === ".mp3") {
console.log("Adding: ", curFilePath);
songCollection.insert({path: curFilePath});
}
});
}
})
}
function saveDB(callback) {
console.log("Saving");
songCollection.save(function (err) {
console.log("Ping")
if (!err) {
console.log("Saved song collection.");
if (callback) { callback(); }
} else {
console.log("Saving failed, this shouldn't happen.");
if (callback) { callback(); }
}
});
}
generateLibrary("D:/Music");
Как вы можете видеть, я использую функцию обратного вызова, чтобы сохранить их перед рекурсивно поиске папки. Это кажется хорошим шагом. Однако ничего не спасет! Я набрал Saving
логарифмический балл в saveDB()
, но он никогда не попадает в Ping
. Я делаю что-то неправильно?
Этот вопрос был на вопрос трекера ForerunnerDB в GitHub для всех, кто заинтересован в том, чтобы разговор. https://github.com/Irrelon/ForerunnerDB/issues/78 –