PouchDB与LevelDB适配器应该创build一个本地文件?
本小册子示例( Leaflet.TileLayer.PouchDBCached )使用“ idb ”适配器,对于电子/节点,它看起来像我想使用“leveldb”适配器。 所以我按照这里的指示: Node.js中的PouchDB
在Node.js中,适配器的情况比浏览器简单得多。 默认情况下,如果你创build一个像这样的PouchDB:
var pouch = new PouchDB('./ path / to / db');
那么将在目录./path/to/db中创build一个基于LevelDB的数据库。 LevelDB实现使用LevelDOWN。
在我的“main.js”(电子入口点),我创build一个像这样的数据库:
var dbPath = path.join(__dirname, 'main-db'); var myDB = new PouchDB(dbPath); console.log('myDB', myDB.adapter);
尽pipe适配器types被报告为“leveldb”,但它并不显示在磁盘上。
问题:数据库在哪里创build? 我查看了我的app目录中的node_modules / pouchdb目录。 我甚至find“隐藏的文件”(这是在OSX上)。 是什么赋予了? 如果我将数据库实例转储到控制台,它看起来像创build(在内存中)。 我是否“做错了”?
所以事实certificate我有一些事情出错了。
-
我正在使用的path是不正确的。 即使我正尝试从附加到我的应用程序文件夹中的index.html文件的Javascript文件创buildpouchDB实例,但此path不起作用:
'./db/todo-db'
。 我能够使用这个path创build数据库实例:'./app/db/todo-db'
db/'./app/db/todo-db'
。这对我来说似乎很奇怪,我不明白。
__dirname
报告我的JS上下文是'./path/to/app/
– 所以我已经在 app文件夹中。 -
我得到了关于NODE版本(它是我请求的适配器)编译的版本之间不匹配的错误消息。 我可以通过在postinstall调用中使用电子重build来解决这个问题:
在我的package.json中:
"scripts": { "start": "electron .", "postinstall": "electron-rebuild", etc. }