Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problème récupérer data GraphQL [NodeJS]

26 octobre 2016 à 16:50:51

Bonjour,

Actuellement je dois développer un projet et la première étape est de récupérer des données dans une db "GraphQL".

Ne connaissant pas à la base ce langage, j'essaye de faire des requetes simples pour faire des tests.

Le soucis, c'est que j'arrive tout à fais à récupérer des données via la plateforme GraphiQL mais pas via le code. Voilà un screen pour vous décrire le problème :

Et le code qui permet de lancer la plateforme :

.use('/graphql', graphqlHTTP(( req ) => {
    let sess = req.session;
    sess.ctx = {};

    return {
        schema    : PublicSchema,
        pretty    : true,
        graphiql  : true,
        rootValue : {
          schema : 'public'
        },
        context   : sess.ctx
      };
    })
  )

Comme vous pouvez le voir, ma fonction getToken fonctionne bien en passant par la plateforme GraphiQL. Maintenant j'aimerais récupérer ce même token mais cette fois-ci via le code, sur une autre page, j'ai donc effectué cette requête :

.get('/zob', function(req, res){
    let sess = req.session;
    sess.ctx = {};
    var { graphql } = require('graphql');
    var query = 'mutation{getToken(email:"###", password:"###"){token}}';
    graphql(PublicSchema, query, sess.ctx).then((response) => {
      console.log("hey");
      console.log(response);
    });
  })

En remplaçant, bien entendu, les '###' par les vrais identifiants.

Tout devrais donc fonctionner, mais malheureusement la console m'affiche ceci :

{ data: { getToken: { token: null } }

et comme erreur :

TypeError: Cannot read property 'token' of undefined. La fonction getToken me renvoie donc null.

Voilà donc tout le problème. Je fais exactement la même requête sur GraphiQL et dans mon code mais dans le dernier cas celle-ci me retourne Null...

Pouvez-vous m'aider s'il vous plaît ?

Merci d'avance!!

-
Edité par Gamingsick. 26 octobre 2016 à 17:02:15

  • Partager sur Facebook
  • Partager sur Twitter
4 juin 2020 à 9:22:40

Salut! en effet tu utilise mal les requettes. Voici un lien pour apprendre graphql en moins d'une heure https://medium.com/free-code-camp/a-beginners-guide-to-graphql-86f849ce1bec
  • Partager sur Facebook
  • Partager sur Twitter
4 juin 2020 à 12:08:36

Bonjour,

Déterrage

Citation des règles générales du forum :

Avant de poster un message, vérifiez la date du sujet dans lequel vous comptiez intervenir.

Si le dernier message sur le sujet date de plus de deux mois, mieux vaut ne pas répondre.
En effet, le déterrage d'un sujet nuit au bon fonctionnement du forum, et l'informatique pouvant grandement changer en quelques mois il n'est donc que rarement pertinent de déterrer un vieux sujet.

Au lieu de déterrer un sujet il est préférable :

  • soit de contacter directement le membre voulu par messagerie privée en cliquant sur son pseudonyme pour accéder à sa page profil, puis sur le lien "Ecrire un message"
  • soit de créer un nouveau sujet décrivant votre propre contexte
  • ne pas répondre à un déterrage et le signaler à la modération

Je ferme ce sujet. En cas de désaccord, me contacter par MP.

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL