Ich entwickle eine Cordova-Anwendung mit einem Node JS-Server und Firebird-Datenbanken. Die beiden Datenbanken existieren und ich kann über isql-fb verbinden.Verbindung erstellt, aber nicht gefunden
Wenn ich eine erste Verbindung über ein Telefon erstelle, funktioniert die Verbindung genauso wie die Abfragen, die für diese Verbindung ausgeführt werden.
Wenn ich jedoch eine zweite Verbindung erstellen, funktioniert es nicht.
Hier ist mein Code:
Anschlusstabelle, die die Verbindungen als [ "username", connexion] Tabellen
var connectionTable = [];
Funktion, die auf Datenbanken verbindet umgruppiert und fügt die Verbindungen in Connection:
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
};
Funktion, die die gewünschte Verbindung über den eingegebenen Benutzernamen zurückgibt:
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;}
}
};
Und dann, auf meinem Knoten JS-Server, ich habe diesen „Weg“:
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);
});
Also für die erste Verbindung zu einer Datenbank durchgeführt, es funktioniert sehr gut, und mir zurückgibt die Werte seines Datenbank.
Allerdings ist es nicht für die zweite andere Verbindung und es heißt, es ist gleich 0, also nehme ich an, es fand es nicht in GetConnection.
Ich verstehe nicht, warum es für einen und nicht anderen ... Ich habe auch versucht, zu mehreren verschiedenen Verbindungen früher, nicht mit diesem Prozess und es funktioniert. Das Problem ist also nicht, dass wir nicht mehrere Verbindungen auf demselben NodeJS-Server haben können, aber dass wir in diesem Zusammenhang nicht den Guten finden können ...
Weiß jemand, was ich falsch mache?
Jede Hilfe wäre sehr dankbar, danke.
- EDIT -
Die Verbindungen gearbeitet, um diese Art und Weise. Der Fehler war in der for-Schleife von getConnection (Benutzername). Ich lasse diesen Beitrag hier jedoch, wenn jemand versucht, eine Tabelle von Verbindungen zu machen.
Danke euch allen.
so Ihre '' usernameAsking ist rechts (existiert in dem Array) und Ihre 2-Protokolle helfen show 'Nummer' und' 0'? – Kaddath
Ja, hier ist es, was die Konsole zeigt: in beiden Fällen: –
zuerst: checkAccount avant Körper {username: 'BARBARA'} usernameAsking = BARBARA Objekt Verbindung {inAsyncCall: false, inTransaction: false, verbunden: true} Verbindung gefunden [{/ * korrekten Daten angezeigt * /}] string: [{/ * auch korrekte Daten * /}] checkAccount beendet –