Ich erhalte die folgenden Fehler, wenn ich es ausführe:
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
require('express-graphql') gibt ein zurück Objekt mit einer Eigentum genannt graphqlHTTP das ist die Funktion, die Sie aufrufen möchten.
Sie versuchen, das Objekt selbst so aufzurufen, als wäre es eine Funktion.
Vielen Dank. Das war wirklich hilfreich. Ich bin auf diesen Fehler gestoßen, als ich einem 40-minütigen GraphQL-Video-Tutorial vom 2. März 2019 gefolgt bin.
– Gregor Bologna
18. Februar 2021 um 1:01 Uhr
Quentins Antwort war genau richtig. Anscheinend die npm-Dokumentation wurde aktualisiert, einige der Tutorials auf YouTube jedoch nicht. Deshalb gibt es für Lernende wie mich ein gewisses Maß an Verwirrung. Es gibt immer noch veraltete Versionen des Codes wie
Vorher gab “express-graphql” eine direkte Funktion oder eine Klasse mit der Funktion zurück und wir konnten sie jeder Variablen wie graphqlServer zuweisen
const graphqlServer = require('express-graphql');
Jetzt gibt es das gesamte Objekt zurück, das eine Funktion namens “graphqlHTTP” enthält. daher sollte der Code genau sein
app.use('/graphql', graphqlHTTP({
// your config
}));
Dieser Code wurde mit einer früheren Version von geschrieben express-graphql.
Vor v0.10.0Du könntest benutzen
var graphqlHTTP = require('express-graphql');
Nach v0.10.0müssen Sie verwenden
var { graphqlHTTP } = require('express-graphql');
Albert Lee
Hatte das gleiche Problem durch die obigen Antworten gelöst.
Für alle, die sich fragen, ist die Express-Graphql-Version 0.10.0 der Ort, an dem die relevante Änderung begonnen hat, sodass Sie die Versionsnummer Ihrer Paket.json-Express-Graphql-Abhängigkeit überprüfen können.