2017-02-04 15 views
0

Electron(Windowsの下で)を使って遊んでいる間、私はPouchDBを使ってみました。残念ながら、それは私にとってはうまくいかないようです。私の場合のpackage.jsonにPouchDBとelectron(windows env)

は次のようになります。

"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' } 

私が使用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) 

私はすべてを再構築しようとしたことを認めなければなりません。いい結果が得られないすべてのアダプターを試しました。私はさらにsqlite3をインストールしようとしたが、もう一度失敗した。

あなたはおそらく他のアイデアを持っていますか、それとも間違っていると思われますか?


アダプターの有無にかかわらず、同じコードをlinuxで試してみました。私はそれがosに依存しないと思う

答えて

0

[OK]を、問題が見つかりました。問題はOSに関連していて、すべてsqlite3を再コンパイルすることでした。実際に私はWindowsツールキットを追加し、後でpythonにパスを設定する必要があった(私はエラーからそれを読む)。私はそれがLinuxの下ですべてがスムーズに行ったことを確認した後にそれを把握する。

私のOSをLinuxに変更する方が安全かもしれませんが、実際にはWindows用に開発する必要があります。私はバランスの取れた方法を見つける必要があります;)