IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

NodeJS Discussion :

Utilisation des données avec pg


Sujet :

NodeJS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur Full Stack
    Inscrit en
    Mai 2010
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Mai 2010
    Messages : 159
    Par défaut Utilisation des données avec pg
    Bonjour à tous j'ai un problème sur une fonction que je n'arrive pas à résoudre.
    Avec pg j'ai ma requete tel quel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    var ami;
    clis.query("SELECT a.personid1, a.personid2 FROM sf_ami AS a WHERE ((a.personid1 = "+personid+" AND a.personid2 = "+sender+") OR (a.personid1 = "+sender+" AND a.personid2 = "+personid+") ) AND accepte =1",'', function (err, result){
    console.log(result);
    ami = result;
    });
    console.log(ami);
    Le premier console.log affiche bien tous les résultats par contre ami affiche rien. Donc je ne peux pas utiliser les données dans le reste de la page.
    Avez-vous une idée?

    Franck

  2. #2
    Membre expérimenté Avatar de Altak
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 170
    Par défaut
    Bonjour,

    Ton console.log(ami) se trouve a l’extérieur de ta callback.
    Nodejs est un langage asynchrone ce qui veut dire que le code ne s’exécute pas forcement dans l'ordre dans lequel il s'affiche.


    Ce que tu fais la, c'est:
    -declarer ami
    -lancer une requête sql
    -afficher ami
    -la requête sql se termine, la callback est appelé
    -afficher le résultat de la requête

    Il faut que tu change ton fonctionenment.

    GLHF!

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Full Stack
    Inscrit en
    Mai 2010
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Mai 2010
    Messages : 159
    Par défaut
    Merci pour ta réponse mais je ne vois pas comment changer car je charge des membres et en fonction de chaque membre je dois vérifier si ils sont amis donc je dois faire des boucles et à chacune récupérer la réponse. Je vois pas comment faire autrement.

    Franck

  4. #4
    Expert confirmé
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 419
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Si tu veux faire les requêtes unitairement il va falloir te plonger dans la gestion de l'asynchrone avec les promesses (pour démarrer, ensuite tu peux regarder du côté de async / await).

    Le mieux serait de tout réaliser sur une requête. Si tu nous donnes la structure de ta base on pourra t'aider à l'écrire. Je suis à peu près certain que ça doit pouvoir se faire avec une ou deux jointures. A noter que sur developpez.com tu as probablement les meilleurs cours de SQL qui existent. Même en anglais tu ne trouveras pas mieux ils sont vraiment supertop (ceux de Frédéric Brouard en particulier).

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur Full Stack
    Inscrit en
    Mai 2010
    Messages
    159
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Full Stack

    Informations forums :
    Inscription : Mai 2010
    Messages : 159
    Par défaut
    Bonsoir Marco, sur une seule requête ça va être très compliqué car je dois chargé des notifications (avec le membre émetteur, le membre réceptionneur, si ils sont connectés, savoir si ils sont amis entre eux, savoir si ils ont fait une demande d'ami entre eux, avoir le titre et la date de l’élément sur lequel l'action est faites, plus un système de points et de médaille). Bref beaucoup de requêtes très différentes et surtout en fonction de la sortie de la requête précédente pour certaines. Même en réduisant au maximum je suis obligé d'avoir plusieurs requêtes.
    Je vais regarder les cours voir si je peux en gagner une ou deux.

    Merci pour l'info.

    Franck

  6. #6
    Membre expérimenté Avatar de Altak
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2014
    Messages
    170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 170
    Par défaut
    Bonjour,

    Est ce que tu as pensé à utiliser un ORM pour ton app?
    Cela dépend du niveau d'optimisation que tu souhaite mais ca peut te faciliter la vie si tu as plein de liaisons et qu tu souhaite récupérer plusieurs entité.

    GLHF!

Discussions similaires

  1. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  2. Problèmes avec le filtrage des ip
    Par berry dans le forum Réseau
    Réponses: 9
    Dernier message: 30/12/2002, 07h51
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo