如何在NeDB中实现持久存储?

Din*_*esh 4 node.js node-webkit

我在node-webkit中尝试过NeDB,它在内存数据上运行良好但不能存储在持久存储中.

fla*_*aky 6

绝对没有node-webkit或nedb专家,但这就是我做到的方式并且它有效.

正如mvanderw在评论中已经提到的那样,一定要确保检查自动加载选项.

这是我的简单node-webkit/angular todo app的配置:

var Datastore = require('nedb'),                                                                                                                                              
    path = require('path'),
    db = new Datastore({ filename: path.join(require('nw.gui').App.dataPath, 'todo.db'), autoload: true });
Run Code Online (Sandbox Code Playgroud)

当我重新启动应用程序时,所有待办事项仍在那里,我准备好了.

希望这可以帮助

编辑: Scott要求的示例

var Datastore = require('nedb'), 
path = require('path'),
db = new Datastore({
  filename:path.join(require('nw.gui').App.dataPath, 'todo.db'),
  autoload: true
}); 

var todoServices = angular.module('todoServices', []);

todoServices.factory('Todo', function($q) {
  return { 
    getAll: function(){ 
      var defer = $q.defer();
      db.find({ 
        //...some criteria
      },
      function(err, docs) {
        defer.resolve(docs);
      });
      return defer.promise;
    }, //...moar code
  }
});
Run Code Online (Sandbox Code Playgroud)

像这样......