2017-06-23 1 views
0

Ich versuche auf eine SQLite-Datei auf einem lokalen Netzwerk-Rechner im Ordner "sqlite" zugreifen, auf Windows-Datei-Explorer zugreifen ich mit der IP Adresse "192.168.5.15/sqlite/db.sqlite", aber wenn die Elektronenapplikation versucht, darauf zuzugreifen, wird der Pfad in den lokalen Maschinenpfad "c:/application ....../192.168 ...." umgewandelt. .Zugriff auf sqlite-Datenbanken auf Remote-Rechner mit statischer Adresse (Electron/Nodejs/fs)

bitte wie kann ich die Datei direkt mit der statischen IP-Adresse zeigen, ohne sie in den lokalen Rechnerpfad zu konvertieren?

hier ist der Code:

// login_app.js 
 

 
var route = require('../../libs/router.js'); \t //my lib 
 

 
var dbPath = "192.168.5.15/sqlite/db.sqlite" \t // here is the path i want to keep it static 
 

 
function login() { 
 
    var email   = document.getElementById("email").value; 
 
    var password = document.getElementById("password").value; 
 

 
    if(email == "" || password == ""){ 
 
     alert("Please Enter Your email & Password ..."); 
 
     return; 
 
    } else{ 
 
     var sql = require('sql.js');       //Import sqLite 
 
     var fs = require("fs");         //Import Files driver 
 

 
     var SHA256 = require("crypto-js/sha256");    \t //Crypting Library 
 

 
     try { 
 
      var filebuffer = fs.readFileSync(dbPath); \t \t \t //here is the problem it converts the file to local machine path c:/..../192.... 
 

 
      if (filebuffer != null) { 
 
       var db = new SQL.Database(filebuffer); 
 
      } else { 
 
       var db = new SQL.Database(); 
 
       console.log("No Database"); 
 
      } 
 

 
      // Prepare an sql statement 
 
      var stmt = db.prepare("SELECT * FROM users WHERE email=:emailid"); 
 

 
      // Bind values to the parameters and fetch the results of the query 
 
      var result = stmt.getAsObject({':emailid' : email}); 
 
      if(result.password == null) alert('Account not existing, please contact Your Administrator ...'); 
 
      else{ 
 
       if(SHA256(password) == result.password) { 
 
        
 
        route.data.relocate('dashboard'); 
 

 
       } 
 
       else alert('Wrong Login credentials, please try again ...'); 
 
      } 
 

 
     } catch (e) { 
 
      console.log(e); 
 
     } 
 

 
    } 
 
}

+0

Haben Sie zwei Schrägstriche versucht? 'var dbPath =" //192.168.5.15/sqlite/db.sqlite "' oder möglicherweise 'file: // 192.168.5.15/sqlite.db.sqlite' - Beachten Sie, dass diese Seite dieses Format beschreibt, aber es als" experimentell "bezeichnet https://nodejs.org/api/fs.html – GregHNZ

+0

file: //192.168.5.15/sqlite.db.sqlite, aber //192.168.5.15/sqlite/db.sqlite hat gut funktioniert, danke für deinen Vorschlag und Hilfe –

Antwort

0

wie GregHNZ var DBPATH vorgeschlagen = "//192.168.5.15/sqlite/db.sqlite" gearbeitet, so dass nur verwendet doppelten Schrägstrich.

Dank GregHNZ

Verwandte Themen