2016-08-02 16 views
3

In meinem Elektron app kippe ich sqlite3 über npmElectron App sqlite3 Modul

npm install sqlite3 

installiert haben, aber sobald ich versuche, mit der Datenbank zu interagieren, kann es nicht um die Datenbank zu finden, hier ist das Protokoll:

Uncaught Error: Cannot find module 'D:\play\electron-quick-start\node_modules\sqlite3\lib\binding\electron-v1.3-win32-x64\node_sqlite3.node'

Hier

ist Code JS:

console.log('whooooo'); 

var sqlite3 = require('sqlite3').verbose(); 
var db = new sqlite3.Database('../db/info.db'); 

db.serialize(function() { 
    db.run("CREATE TABLE lorem (info TEXT)"); 

    var stmt = db.prepare("INSERT INTO lorem VALUES (?)"); 
    for (var i = 0; i < 10; i++) { 
     stmt.run("Ipsum " + i); 
    } 
    stmt.finalize(); 

    db.each("SELECT rowid AS id, info FROM lorem", function (err, row) { 
     console.log(row.id + ": " + row.info); 
    }); 
}); 
db.close(); 

ich versuche auch, auf diese Weise:

npm install sqlite3 --build-from-source 

aber es kann nicht installiert werden!

Auch ich bin mit Python3. Wie installierst du ein Modul um mit Elektronen zu arbeiten?

+0

Sie hierfür eine Lösung erhalten? – Jay

Antwort

7

Sie haben dieses nativen Modul mit Electron basierten Konfigurationen zu bauen.

Versuchen:
1. cd node_modules/sqlite3
2. npm run prepublish
3. node-gyp configure --module_name=node_sqlite3 --module_path=../lib/binding/electron-v1.3-win32-x64
4. node-gyp rebuild --target=1.3.1 --arch=x64 --target_platform=win32 --dist-url=https://atom.io/download/atom-shell --module_name=node_sqlite3 --module_path=../lib/binding/electron-v1.3-win32-x64

Dies wird vorausgesetzt, Sie die neueste Version von Elektron haben. Sie können die Konfiguration ändern, um sie an Ihre Elektronenversion anzupassen.

+1

wie ein Charme, danke, denken Sie daran, wenn Sie es nicht Knoten gyp haben, installieren, bevor diese Dinge tun .. –

+1

Es ist nicht für mich arbeiten. Irgendeine Lösung für diesen Fehler? Fehler: Nicht abgefangene Fehler: nicht Modul finden 'path_to_project \ node_modules \ sqlite3 \ lib \ Bindung \ elektronen v1.4-win32-ia32 \ node_sqlite3.node' – Jay

+0

http://stackoverflow.com/questions/41307807/i-am -getting-and-error-while-connecting-to-sqlite3-database gibt es eine lösung für dieses – Jay

12

Erstens:

npm install electron-rebuild

dann versuchen Sie dies mehrmals:

./node_modules/.bin/electron-rebuild -w sqlite3 -p

+0

funktioniert perfekt, wenn auf windows einige bash client verwenden (ich habe git bash) – Ajay

0

1: Fügen Sie in Package.json-Datei neu erstellen und npm elektronen Wiederaufbau

{ 
    "name": "electron-quick-start", 
    "version": "1.0.0", 
    "description": "A minimal Electron application", 
    "main": "main.js", 
    "scripts": { 
    "start": "electron .", 
    "rebuild": "electron-rebuild -f -w sqlite3" 
    }, 
    "repository": "https://github.com/electron/electron-quick-start", 
    "keywords": [ 
    "Electron", 
    "quick", 
    "start", 
    "tutorial", 
    "demo" 
    ], 
    "author": "author", 
    "license": "CC0-1.0", 
    "devDependencies": { 
    "@types/file-saver": "0.0.1", 
    "electron": "1.7", 
    "electron-rebuild": "^1.6.0" 
    }, 
    "dependencies": { 
    "sqlite3": "^3.1.13" 
    } 
} 
installieren

2: in stoppe Python 2.7 und füge seinen Pfad zur Umgebungsvariablen hinzu, z. B. C: \ Python27;

3: npm installieren und dann npm Lauf wieder aufbauen