0
"sqlite"フォルダにあるローカルエリアネットワークマシン上のsqliteファイルにアクセスしようとしています。アドレス "192.168.5.15/sqlite/db.sqlite"になりますが、電子アプリケーションがアクセスしようとすると、パスはローカルマシンパス "c:/ application ....../192.168 ...."に変換されます。 。静的アドレス(Electron/Nodejs/fs)を持つリモートマシン上のsqliteデータベースにアクセス
ローカルマシンのパスに変換せずに静的IPアドレスを使用して直接ファイルをポイントすることはできますか。
// 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);
}
}
}
2つのスラッシュを試しましたか? 'var dbPath =" //192.168.5.15/sqlite/db.sqlite "'またはおそらく 'file:// 192.168.5.15/sqlite.db.sqlite' - このページはそのようなフォーマットについて記述していますが、"実験的 " https://nodejs.org/api/fs.html – GregHNZ
ファイル://192.168.5.15/sqlite.db.sqlite、//192.168.5.15/sqlite/db.sqlite正常に機能しました。ありがとうございました。 –