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我有一些事情出错了。

  1. 我正在使用的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文件夹中。

  2. 我得到了关于NODE版本(它是我请求的适配器)编译的版本之间不匹配的错误消息。 我可以通过在postinstall调用中使用电子重build来解决这个问题:

在我的package.json中:

  "scripts": { "start": "electron .", "postinstall": "electron-rebuild", etc. }