CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Socket.IO et MYSQL

tas_lseum
tas_lseum
Niveau 9
28 janvier 2017 à 13:31:43

Salut!
Je suis de nouveau confronté à un problème avec mon application socket.IO
J'aimerais comprendre pourquoi mon script ne fonctionne pas...

L'idée est simple, le client envoie les informations de connexion (username et password) au serveur, le serveur vérifie puis si ça matche le serveur place le pseudo de l'utilisateur dans une variable username puis lance la fonction GetUserInfo() qui elle va faire une requête mysql pour récupérer les données de l'utilisateur et l'envoyer au client (mais dans ce cas la je me contente simplement d'afficher les données avec un console.log.

Mais voilà ma fonction ne se lance pas et je ne suis pas sur que le code soit correct de toute façon.
Si quelqu'un peut m'aider ça serait cool car j'ai cherché sur internet toute la mâtiné, sans résultat. :(
Merci :ange:

App.js : http://pastebin.com/ji3KiCvr
Index.html : http://pastebin.com/5UQq4RZv

ShowBekS_75
ShowBekS_75
Niveau 7
28 janvier 2017 à 15:46:07

Salut, as-tu regardé du côté de grafikart ?

https://www.grafikart.fr/tutoriels/nodejs/socketio-tchat-mysql-756

tas_lseum
tas_lseum
Niveau 9
28 janvier 2017 à 15:48:15

Le 28 janvier 2017 à 15:46:07 ShowBeKs_75 a écrit :
Salut, as-tu regardé du côté de grafikart ?

https://www.grafikart.fr/tutoriels/nodejs/socketio-tchat-mysql-756

Justement j'utilise un peu de son script pour faire le miens :(

dark_drow
dark_drow
Niveau 15
28 janvier 2017 à 16:17:49

en regardant comme ça le code à l'air correct (mais bon c'est du JS ^^)
GetUserInfo() n'est pas appelée mais es tu sûr de rentrer dans le "else" ?

Sinon utilise tu un Linter pour tes fichiers javascript ? c'est très utile, par exemple j'ai vu direct :

socket.on('login', function(data){
        username = data.username;
        password = data.password;

password n'est pas déclaré dans ton fichier, du coup ça part direct dans le scope global est c'est assez mauvais

Aussi, usename est déclaré comme variable "globale" au fichier app.js, c'est source de bugs car tu auras à un moment ou à un autre du code asynchrone qui va lire/écrire dans ta variable quand il faut pas.

limaxio
limaxio
Niveau 8
28 janvier 2017 à 19:10:50

J'ai pas trop lu ton code, mais comme dis dark_drow tu devrais déclarer tes variables dans tes fonctions avec var password... Sinon je n'ai pas compris ce qui fonctionnait pas, je veux dire à quel moment ça ne fait pas le truc que tu t'attends que ça fasse ?

Sinon t'es certain que tu n'as pas de mot de passe pour accéder à ta base de données ?
Parce que tu as mis ça :

var connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: '',
    database: 'demo'
});

Tu devrais faire des console.log, un peu partout pour voir exactement où ça ne marche pas, on appelle ça faire du debugging. Ça permet d'être plus clair quand tu poses une question et peut-être même de résoudre les problème tout seul. Je dis pas ça méchamment hein.

Regarde un truc sympa pour détecter exactement la ligne que tu parcours, tu colles ça, comme ça tu n'as pas besoin de mettre des messages différents à chaque fois

try { risitas.la.chancla } catch (err) { console.log (err); } 

Sinon, comme tu as la bonne idées d'utiliser nodejs (vraiment). Tu peux aussi exécuter ton code directement dans un environnement d'interprétation, y pas tellement de langage qui te permettent de faire ça, c'est super utile parce que comme ça tu peux voir en temps réel les valeurs de tes variables.

Tacha-tepoilu
Tacha-tepoilu
Niveau 12
29 janvier 2017 à 11:41:53

Le 28 janvier 2017 à 19:10:50 limaxio a écrit :
Tu devrais faire des console.log, un peu partout pour voir exactement où ça ne marche pas, on appelle ça faire du debugging. Ça permet d'être plus clair quand tu poses une question et peut-être même de résoudre les problème tout seul. Je dis pas ça méchamment hein.
Tu peux aussi exécuter ton code directement dans un environnement d'interprétation, y pas tellement de langage qui te permettent de faire ça, c'est super utile parce que comme ça tu peux voir en temps réel les valeurs de tes variables.

+1 et je dirais même que tu peux utiliser Visual Studio Code pour faire du debugging (il le fait très bien)

Par contre tu devrais regarder côté client, lance ton code et regarde les logs du navigateur, t'auras déjà une réponse. J'pense que si ta fonction n'est pas appelée, c'est parce que l'event précédent n'a pas été appelée, donc n'a pas été envoyé par le client, donc a probablement été mal initialisé.

Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Création de sites web
  • Programmation
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware