我尝试了node-webkit中的NeDB,它在内存数据中工作正常,但无法存储在持久存储中。如何在NeDB中实现持久性存储?
2
A
回答
5
肯定没节点的WebKit或nedb专家,但我这是如何做到的,它的工作。
正如mvanderw在评论中已经提到的那样,绝对要确保检查autoload选项。
这是比如我一个简单的节点的WebKit /角待办事项应用程序配置:
var Datastore = require('nedb'),
path = require('path'),
db = new Datastore({ filename: path.join(require('nw.gui').App.dataPath, 'todo.db'), autoload: true });
当我重新启动应用程序,所有的待办事项仍然存在,我已经准备好了。
希望这有助于
编辑: 例斯科特的要求
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
}
});
事情是这样的......
1
C:\Users\Dinesh\AppData\Local\FrameLess\nedb-data
是其中node-webkit
未压缩的应用程序;这意味着您的应用程序已被封装为.nw
,这是一个更智能的zip文件。因此,它必须解压缩到一个tmp文件夹才能执行,这就是为什么你在AppData
找到你的db。
在您的开发人员工具中,您始终可以通过键入以下内容来知道您的应用程序已解压到哪个文件夹:process.env
。您的TMPDIR
属性是您的数据库所在的位置(TMPDIR
是Mac OS X属性,它在Windows上的命名可能不同)。
您可以在不打包的情况下执行您的nw
应用。基本上你可以拖动你的文件夹到nw.exe
;或打字nw.exe yourAppFolder
;或者像你一样将你的应用打包为.nw
。
再次阅读下列准则:https://github.com/rogerwang/node-webkit/wiki/How-to-run-apps
相关问题
- 1. 如何在Dart中实现持久性?
- 2. 如何在持久性存储上创建两个持久存储协调器
- 3. 如何在ZODB中实现持久性列表或持久性映射
- 4. BlackBerry持久性存储
- 5. DDD并实现持久性
- 6. 实现透明持久性
- 7. 实现Python持久属性
- 8. 如何在Mule中的ActiveMQ中实现LevelDB持久性?
- 9. CoreData持久性存储何时创建?
- 10. 如何在cache2k中定义持久性存储?
- 11. 如何在Redis中执行持久性存储?
- 12. 在持久性存储中存储数据
- 13. 如何在Python中实现持久性计数器
- 14. SQLite持久性存储作为缓存
- 15. 如何将SQLite添加为CoreData中的持久性存储?
- 16. 如何存储目录中文件的持久性值?
- 17. 代理如何从jdbc持久性存储中获取消息?
- 18. 如何在Amazon上托管持久性数据存储系统
- 19. SQLite:对象实例的持久存储
- 20. 在虚拟目标持久性存储上发送持久性消息
- 21. 如何在EventAggregator中支持持久性?
- 22. iOS的持久性:存储和目录
- 23. weblogic持久性存储错误
- 24. Firebase数据库持久性存储
- 25. CoreData持久性存储区出错
- 26. 黑莓的持久性存储
- 27. Windows Azure持久性存储提示
- 28. Spring Data Neo4j - 跨存储持久性
- 29. Gearman持久性存储解决方案
- 30. Scala持久性键值存储?
你得到任何错误? – robertklep
需要更多信息 - 你看过[nedb db loading](https://github.com/louischatriot/nedb#creatingloading-a-database),特别是'inMemoryOnly'和'autoload'选项吗? –
最后我发现数据库是在其他目录下创建的 该软件包位于:C:\ Users \ Dinesh \ Programs \ Node-Webkit \ FrameLess nw.exe位于:C:\ Users \ Dinesh \ Programs \ Node-Webkit \ Package 数据库被保存在一些奇怪的位置:C:\ Users \ Dinesh \ AppData \ Local \ FrameLess \ nedb-data – Dinesh