74 votes

graphqlHTTP n'est pas une fonction

Voici mon application simple graphql express

const express = require('express');
const graphqlHTTP = require('express-graphql');

const app = express();
app.use(
    '/graphql',
    graphqlHTTP({
      graphiql: true,
    })
  );

app.listen(4000, () => {
    console.log("listening for request!");
});

J'obtiens les erreurs suivantes lorsque je l'exécute :

 graphqlHTTP({
    ^

TypeError: graphqlHTTP is not a function
    at Object.<anonymous> (D:\PersonalProjects\GraphQL\server\app.js:7:5)
    at Module._compile (internal/modules/cjs/loader.js:1138:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)
    at Module.load (internal/modules/cjs/loader.js:986:32)
    at Function.Module._load (internal/modules/cjs/loader.js:879:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)  
    at internal/main/run_main_module.js:17:47

Comment puis-je le réparer ? Merci d'avance !

6voto

Codemaker Points 639

Ce code a été écrit avec une version antérieure de express-graphql .

Avant la v0.10.0 vous pouvez utiliser

var graphqlHTTP = require('express-graphql');

Après la v0.10.0 vous devez utiliser

var { graphqlHTTP } = require('express-graphql');

3voto

Albert Lee Points 39

J'ai eu le même problème résolu par les réponses ci-dessus.

Pour ceux qui se posent la question, la version 0.10.0 d'express-graphql est celle où le changement pertinent a commencé. Vous pouvez donc vérifier le numéro de version de la dépendance express-graphql dans votre package.json.

https://www.npmjs.com/package/express-graphql/v/0.9.0
https://www.npmjs.com/package/express-graphql/v/0.10.0

3voto

Configuration simple :

NE PAS UTILISER VOTRE PROPRE PARAMÈTRE STRICTEMENT UTILISER { graphqlHTTP } !!!!

Il suffit de monter express-graphql comme un gestionnaire de route :

const express = require('express');
const { graphqlHTTP } = require('express-graphql');

const app = express();

app.use(
  '/graphql',
  graphqlHTTP({
    schema: MyGraphQLSchema,
    graphiql: true,
  }),
);

app.listen(4000, () => {
    console.log('Server is running on port 4K')
);

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X