Npm 数据库和电子(windows环境)

Npm 数据库和电子(windows环境),npm,electron,pouchdb,Npm,Electron,Pouchdb,在玩Electron(在Windows下)时,我尝试使用PockDB。不幸的是,它似乎对我不起作用 在我的例子中,package.json如下所示: "devDependencies": { "electron": "^1.4.12", "electron-rebuild": "^1.4.0" }, "dependencies": { ... "electron-reload": "^0.2.0", "pouchdb": "*", "pouch

在玩Electron(在Windows下)时,我尝试使用PockDB。不幸的是,它似乎对我不起作用

在我的例子中,package.json如下所示:

  "devDependencies": {
    "electron": "^1.4.12",
    "electron-rebuild": "^1.4.0"
  },
  "dependencies": {
...
    "electron-reload": "^0.2.0",
    "pouchdb": "*",
    "pouchdb-adapter-node-websql": "*",
    "pouchdb-find": "*",
...
}
和js代码本身:

var pouch = require('pouchdb');
var db = new pouch('mydb-websql');
console.log(db)
结果如下所示:

> PouchDB$5 {   __opts: { name: 'mydb-websql', adapter: 'leveldb' },  
> auto_compaction: undefined,   prefix: '_pouch_',   name:
> 'mydb-websql',   _adapter: 'leveldb',   domain: null,   _events: {},  
> _eventsCount: 0,   _maxListeners: undefined,   taskqueue:    TaskQueue$1 {
>      isReady: false,
>      failed:
>       Error: Error: Could not locate the bindings file. Tried:
>        Ôćĺ c:\learning\electron\node_modules\pouchdb\node_modules\leveldown
> \build\leveldown.node
>        Ôćĺ c:\learning\electron\node_modules\pouchdb\node_modules\leveldown
> \build\Debug\leveldown.node
>        Ôćĺ c:\learning\electron\node_modules\pouchdb\node_modules\leveldown
> \build\Release\leveldown.node
>        Ôćĺ c:\learning\electron\node_modules\pouchdb\node_modules\leveldown
> \out\Debug\leveldown.node
>        Ôćĺ c:\learning\electron\node_modules\pouchdb\node_modules\leveldown
> \Debug\leveldown.node
>        Ôćĺ c:\learning\electron\node_modules\pouchdb\node_modules\leveldown
> \out\Release\leveldown.node
>        Ôćĺ c:\learning\electron\node_modules\pouchdb\node_modules\leveldown
> \Release\leveldown.node
>        Ôćĺ c:\learning\electron\node_modules\pouchdb\node_modules\leveldown
> \build\default\leveldown.node
>        Ôćĺ c:\learning\electron\node_modules\pouchdb\node_modules\leveldown
> \compiled\6.5.0\win32\x64\leveldown.node: unable to import leveldown
>           at requireLeveldown (c:\learning\electron\node_modules\pouchdb\li b\index.js:5173:12)
>           at PouchDB$5.LevelDownPouch (c:\learning\electron\node_modules\po uchdb\lib\index.js:5373:17)
>           at new PouchDB$5 (c:\learning\electron\node_modules\pouchdb\lib\i ndex.js:2753:36)
>           at Object.<anonymous> (c:\learning\electron\main.js:6:10)
>           at Module._compile (module.js:556:32)
>           at Object.Module._extensions..js (module.js:565:10)
>           at Module.load (module.js:473:32)
>           at tryModuleLoad (module.js:432:12)
>           at Function.Module._load (module.js:424:3)
>           at loadApplicationPackage (C:\Users\adam\AppData\Roaming\npm\node_modu
> les\electron\dist\resources\default_app.asar\main.js:280:12),
>      queue: [] },   adapter: 'leveldb' } 
>pookDB$5{{uuu选项:{name:'mydb websql',adapter:'leveldb'},
>自动压缩:未定义,前缀:''u邮袋',名称:
>'mydb websql',_适配器:'leveldb',域:null,_事件:{},
>\u eventsCount:0,\u maxListeners:undefined,taskqueue:taskqueue$1{
>伊斯雷迪:错,
>失败:
>错误:错误:找不到绑定文件。已尝试:
>Ôćĺc:\learning\electron\node_modules\pockDB\node_modules\leveldown
>\build\leveldown.node
>Ôćĺc:\learning\electron\node_modules\pockDB\node_modules\leveldown
>\build\Debug\leveldown.node
>Ôćĺc:\learning\electron\node_modules\pockDB\node_modules\leveldown
>\build\Release\leveldown.node
>Ôćĺc:\learning\electron\node_modules\pockDB\node_modules\leveldown
>\out\Debug\leveldown.node
>Ôćĺc:\learning\electron\node_modules\pockDB\node_modules\leveldown
>\Debug\leveldown.node
>Ôćĺc:\learning\electron\node_modules\pockDB\node_modules\leveldown
>\out\Release\leveldown.node
>Ôćĺc:\learning\electron\node_modules\pockDB\node_modules\leveldown
>\Release\leveldown.node
>Ôćĺc:\learning\electron\node_modules\pockDB\node_modules\leveldown
>\build\default\leveldown.node
>Ôćĺc:\learning\electron\node_modules\pockDB\node_modules\leveldown
>\compiled\6.5.0\win32\x64\leveldown.node:无法导入leveldown
>在requireLeveldown(c:\learning\electron\node\u modules\pockdb\li b\index.js:5173:12)
>在PockDB$5.levelDownPock(c:\learning\electron\node\u modules\po uchdb\lib\index.js:5373:17)
>新的PockDB$5(c:\learning\electron\node\u modules\PockDB\lib\i ndex.js:2753:36)
>对象。(c:\learning\electron\main.js:6:10)
>在模块处编译(Module.js:556:32)
>在Object.Module._extensions..js(Module.js:565:10)
>在Module.load(Module.js:473:32)
>在TryModule加载时(module.js:432:12)
>在Function.Module.\u加载(Module.js:424:3)
>在loadApplicationPackage(C:\Users\adam\AppData\Roaming\npm\node\u modu
>les\electron\dist\resources\default\u app.asar\main.js:280:12),
>队列:[]},适配器:'leveldb'}
当我使用websql适配器时,结果甚至更糟:

App threw an error during load
Error: Invalid Adapter: websql
    at new PouchDB$5 (c:\learning\electron\node_modules\pouchdb\lib\index.j
s:2745:11)
    at Object.<anonymous> (c:\learning\electron\main.js:6:10)
    at Module._compile (module.js:556:32)
    at Object.Module._extensions..js (module.js:565:10)
    at Module.load (module.js:473:32)
    at tryModuleLoad (module.js:432:12)
    at Function.Module._load (module.js:424:3)
    at loadApplicationPackage (C:\Users\adam\AppData\Roaming\npm\node_modules\el
ectron\dist\resources\default_app.asar\main.js:280:12)
    at Object.<anonymous> (C:\Users\adam\AppData\Roaming\npm\node_modules\electr
on\dist\resources\default_app.asar\main.js:322:5)
    at Module._compile (module.js:556:32)
应用程序在加载过程中抛出错误
错误:无效适配器:websql
新的PockDB$5(c:\learning\electron\node\u modules\PockDB\lib\index.j
s:2745:11)
反对。(c:\learning\electron\main.js:6:10)
在模块处编译(Module.js:556:32)
在Object.Module._extensions..js(Module.js:565:10)
在Module.load(Module.js:473:32)
在TryModule加载时(module.js:432:12)
在Function.Module.\u加载(Module.js:424:3)
在loadApplicationPackage(C:\Users\adam\AppData\Roaming\npm\node\U modules\el
ectron\dist\resources\default\u app.asar\main.js:280:12)
反对。(C:\Users\adam\AppData\Roaming\npm\node\u modules\electr
on\dist\resources\default\u app.asar\main.js:322:5)
在模块处编译(Module.js:556:32)
我必须承认,我试图重建一切,我尝试了所有适配器,但没有取得好的结果。我尝试另外安装sqlite3,但再次失败

你是否有其他想法,它会出什么问题,或者我可能会在哪里犯错误



我在linux下尝试了相同的代码,有适配器和没有适配器,但都失败了。我认为它不依赖于操作系统。好的,我发现了问题。这个问题与操作系统有关,而且都是围绕着重新编译sqlite3。实际上,我需要添加windows工具包,并在以后设置python的路径(我从错误中读取)。在检查过linux下一切都很顺利后,我发现这一点

也许把我的操作系统改成linux会更安全,但实际上我需要为windows开发。我需要找到平衡的方法;)