首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >先导数据库不在节点中持久存在(电子)

先导数据库不在节点中持久存在(电子)
EN

Stack Overflow用户
提问于 2016-02-13 23:25:00
回答 1查看 279关注 0票数 0

我正在尝试从我的音乐文件夹中获取mp3文件路径,并将其保存到我的数据库中。以下是代码的相关部分:

代码语言:javascript
复制
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");

正如您所看到的,在递归搜索文件夹之前,我使用了一个回调来保存。这似乎是一个很好的增量。然而,什么也救不了你!我命中了saveDB()中的Saving日志点,但它从未命中过Ping。我做错了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2016-06-15 18:44:12

有兴趣观看对话的任何人都可以在GitHub的ForerunnerDB问题跟踪器上回答这个问题。在这里复制和粘贴(冗长的)对话可能不会有效率。

https://github.com/Irrelon/ForerunnerDB/issues/78

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35381635

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档