javascript - 带有 LevelDB 适配器的 PouchDB 是否应该创建本地文件?

标签 javascript node.js electron pouchdb

这个传单示例( Leaflet.TileLayer.PouchDBCached )正在使用“idb”适配器,对于 Electron/Node ,看起来我想使用“leveldb”适配器。所以我按照这里的说明进行操作:PouchDB in Node.js

In Node.js, the adapter situation is much simpler than in browsers. By default, if you create a PouchDB like this one:

var pouch = new PouchDB('./path/to/db');

then a LevelDB-based database will be created in the directory ./path/to/db. The LevelDB implementation uses LevelDOWN.

在我的“main.js”(Electron 入口点)中,我创建了一个像这样的数据库:

var dbPath = path.join(__dirname, 'main-db');
var myDB = new PouchDB(dbPath);
console.log('myDB', myDB.adapter);

虽然适配器类型报告为“leveldb”,但它不会显示在磁盘上。

问题:数据库在哪里创建?我查看了我的应用程序目录中的node_modules/pouchdb 目录。我什至寻找过“隐藏文件”(这是在 OSX 上)。是什么赋予了?如果我将数据库实例转储到控制台,它看起来就像已创建(在内存中)。我“做错事”了吗?

最佳答案

事实证明我出了一些问题。

  1. 我使用的路径不正确。尽管我尝试从附加到应用程序文件夹内的 index.html 文件的 Javascript 文件创建 pouchDB 实例,但此路径不起作用:'./db/todo-db'。我能够使用以下路径创建数据库实例:'./app/db/todo-db'

    这对我来说似乎很奇怪,我不明白。 __dirname 报告我的 JS 上下文是 './path/to/app/ – 所以我已经在应用程序文件夹中了。

  2. 我收到一条错误消息,涉及编译 levelDB(我请求的适配器)所针对的 NODE 版本之间不匹配的错误消息。我能够通过使用 electron-rebuild 解决这个问题在安装后调用中:

在我的 package.json 中:

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

关于javascript - 带有 LevelDB 适配器的 PouchDB 是否应该创建本地文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43129478/

相关文章:

node.js - 使用 Joi 验证嵌套对象

node.js - Node 18.04.0 - 找不到模块 Node :test

webview - 如何访问 <webview> (Electron/NW.JS) 的内容?

javascript - 使用单个 JavaScript 上下文运行两个 Electron 窗口

macos - 如何添加 Electron DMG 背景图像?

javascript - 表单克隆唯一标识

用户需要调用的Javascript函数

javascript - 如何在谷歌地图的折线上方显示信息窗口?

javascript - 嵌套 svg 忽略 Chrome 和 Opera 中的转换

node.js - aws 上的 ETag 缓存