Fehlende Fehlermeldung

Anubis1982

Grünschnabel
Hallo liebe Gemeinde, da ich recht neu in Javascript bin, komme ich irgendwie nicht weiter. In meinem Node.Js script habe ich folgende Funktion.

Javascript:
function plus(user, socket) {
   query('SELECT * FROM `users` WHERE `steamid` = '+pool.escape(user.steamid)+'AND `name` LIKE "%SEITENNAME%" ', function(err, row) {
       if(err) return;
               
       if(time() > row[0].plus) {
           query('UPDATE `users` SET `plus` = '+pool.escape(time()+60*60*24)+', `balance` = `balance` + 25 WHERE `steamid` = '+user.steamid);
           socket.emit('message', {
               type: 'alert',
               alert: 'Confirmed'
           });
           getBalance(user, socket);
       }
       else {
           socket.emit('message', {
               type: 'alert',
               alert: 'You must wait '+ math.round (((row[0].plus-time())/3600) * 100) / 100 +' hours, to earn your free Coins!'
           });           
       }
   });
}

Erklärung: Es wird überprüft ob der eingelogte User in seinem Namen den Seitennamen enthält, wenn ja, dann bekommt er 25 Coins geschenkt.Wenn er den Button nochmal innerhalb von 24std klicken würde, bekommt er ein Alert, das er noch so und so viel Stunden warten muss, bevor er wieder 25 Coins bekommt.

Mein Problem ist, wenn der User in seinem Namen nicht den Seitennamen beinhaltet, soll ein alert8 kommen, das er den Seitennamen nicht in seinem Namen trägt und somit keine 25 Coins bekommt.
Habe schon alles mögliche versucht, bekomme aber keine Meldung.

Würde mich über ein paar Hilfen sehr freuen. ...danke
 
Mit welcher Bibliothek arbeitest du? Was ist query für einen Funktion?
Auf Anhieb würde ich raten, dass die Callback-Funktion von query in "row" ein Array der zurückgegebenen Zeilen enthält. Dann könntest du einfach prüfen, ob es solch einen Nutzer überhaupt gibt:
Javascript:
if (err) return; // Vielleicht sinnvollere Fehlerbehandlung
if (row.length === 0) {
  socket.emit('message', { type: 'alert' /* ... */ });
}
Übrigens ist dein Code anfällig für Race Conditions. Ein Nutzer könnte mehrmals 25 Coins gutgeschrieben bekommen (zwischen SELECT und UPDATE).
 
Zurück