私はNode JSサーバーとFirebirdデータベースを使用してCordovaアプリケーションを開発しています。 2つのデータベースが存在し、isql-fb経由で接続できます。接続が作成されましたが見つかりませんでした
電話で最初の接続を作成すると、この接続で行われたクエリと同様に、接続が機能します。
ただし、2番目の接続を作成すると機能しません。ここで
は私のコードです:
接続として接続を再グループ化テーブル、[「ユーザー名」、コネクション]テーブル
var connectionTable = [];
は、データベースに接続し、connectionTable内の接続を追加機能:
function connectionToDB(username, password, dbAddress){
var con = fb.createConnection();
con.connectSync(dbAddress, username, password, '');
var newConnection = [username, con];
connectionTable.push(newConnection);
console.log('connection finished'); //it is displayed for both connections so I think it works
};
入力したユーザー名で希望の接続を返す関数:
function getConnection(username){
for(x in connectionTable){
if(connectionTable[x][0]==username) {
return connectionTable[x][1];
}
else {console.log("No connection found with username : " + username); return 0;}
}
};
そして、私のノードJSサーバー上で、私はこの「ルート」を持っている:
app.get('/checkAccount/:username', function(req, res){
console.log("checkAccount avant body");
console.log(req.params);
var usernameAsking = req.params.username;
console.log("usernameAsking = " + usernameAsking); //returns username in both cases
var connexionLinked = getConnection(usernameAsking);
console.log(typeof connexionLinked);
console.log(connexionLinked);
if(connexionLinked == 0) console.log("Problem. No linked connexion found");
else console.log("connexion found");
var query = connexionLinked.querySync("SELECT * from shops");
var rows = query.fetchSync('all', true);
console.log(sys.inspect(rows));
var shopNameString = JSON.stringify(rows);
console.log("string : " + shopNameString);
res.send(shopNameString);
});
だから、データベースに行わ最初の接続のために、それは非常にうまく機能し、私にその値を返すんデータベース。
しかし、2番目の異なる接続ではなく、0と等しいので、GetConnectionで見つからなかったと仮定します。
私はそれが他のものではなく動作する理由を理解できません...私はこのプロセスではなく、いくつかの異なる接続に先に接続しようとしました。だから問題は、同じNodeJSサーバ上で複数の接続を持つことができないということではありませんが、このコンテキストでは、明らかに良いものを見つけることができません...
私が間違っていることを誰かが知っていますか?
ご協力いただきありがとうございます。ありがとうございます。
- EDIT -
接続は、この方法を働きました。エラーは、getConnection(username)のforループにあります。誰かが接続のテーブルをしようとすると、私はここにこの投稿をしましょう。
ありがとうございます。
を助けるので、あなたの 'usernameAskingは'権利である(配列中に存在する)とあなたの2つのログ'number'と' 0'を表示しますか? – Kaddath
はい、ここでコンソールに示すものである。いずれの場合においても: –
最初:checkAccount前衛体 {ユーザー名: 'BARBARA'} usernameAsking = BARBARA オブジェクト 接続{inAsyncCall:偽、inTransaction:接続され、偽:真} checkAccount第二 –