Apollo-link-rest: ReferenceError: Header ist nicht definiert

Erstellt am 3. Jan. 2018  ·  10Kommentare  ·  Quelle: apollographql/apollo-link-rest

Habe den Basiscode in Knoten 8 mit der Readme-Datei und deren Ausbombung ausprobiert.

/home/stephen/dev/gql-play/node_modules/apollo-link-rest/lib/bundle.umd.js:110
    if (headers instanceof Headers) {
                           ^

ReferenceError: Headers is not defined
    at normalizeHeaders (/home/stephen/dev/gql-play/node_modules/apollo-link-rest/lib/bundle.umd.js:110:28)
    at new RestLink (/home/stephen/dev/gql-play/node_modules/apollo-link-rest/lib/bundle.umd.js:259:25)
    at Object.<anonymous> (/home/stephen/dev/gql-play/index.js:7:14)
    at Module._compile (module.js:635:30)
    at Object.Module._extensions..js (module.js:646:10)
    at Module.load (module.js:554:32)
    at tryModuleLoad (module.js:497:12)
    at Function.Module._load (module.js:489:3)
    at Function.Module.runMain (module.js:676:10)
    at startup (bootstrap_node.js:187:16)

Angehängter Quellcode unten
gql-play.zip

➜  gql-play node -v
v8.9.3

Hilfreichster Kommentar

Ich konnte es umgehen, indem ich die Header auf das globale Objekt setzte.

const fetch = require('node-fetch');
global.Headers = fetch.Headers;

Alle 10 Kommentare

Ich konnte es umgehen, indem ich die Header auf das globale Objekt setzte.

const fetch = require('node-fetch');
global.Headers = fetch.Headers;

Ich habe versucht, es hier zu reproduzieren: https://codesandbox.io/s/0x4wx2or0v ohne Glück. Kannst du es versuchen?

Mit deinem Beispiel habe ich das gleiche Problem, auch mit Knoten 6.1 versucht, gleiches Ergebnis.

Ich glaube, ich laufe mit node9? Ich muss meinen Knoten downgraden und sehen, ob das reproduziert wird. Ich habe andere Knotenprobleme.

Haben sie in Knoten 9 Header zu global hinzugefügt? https://runkit.com/trashhalo/5a4d5779ceaa39001278edbe 9.3.0 scheint immer noch Fehler zu machen

@trashhalo Ich verwende v9.3.0 - weisen Sie dieses Problem immer noch auf?

Hey @trashhalo -- ich habe gerade deine Test-App ausgeführt, und du hast Recht, wenn ich versuche, Link-Rest direkt als Node-Skript auszuführen, bekomme ich das gleiche Problem mit fehlenden Headern.

Ich konnte dieses Problem umgehen, indem ich Folgendes tat:

global.Headers = global.Headers || require("fetch-headers");

Das ist jedoch offensichtlich das polyfilling des Problems. -- Leider erhalte ich dabei eine Fehlermeldung mit ReferenceError: gql is not defined

Ich bin mir nicht ganz sicher, ob wir erwarten, dass Linkrest funktioniert, wenn er in einer reinen Knotenumgebung aufgerufen wird? Die Gedanken?

Oh, in Ordnung. Es macht mir nichts aus, das Problem zu polyfillen, vorausgesetzt, es funktioniert.

Hallo zusammen,

Knoten v8.94
OS X 10.11.6
Next.JS v 5.0.1-canary.4

Ich habe das erweiterte Beispiel installiert, alle Abhängigkeiten auf den neuesten Stand gebracht und alles war gut.

Ich kopierte dann src/SearchShow.js und unterstützte <ApolloProvider> (und deps) in ein neues Projekt, das unter Next.JS ausgeführt wurde, und das Problem trat auf.

Ich habe das Polyfill von ReferenceError: gql is not defined nicht, wie von @fbartho gemeldet.

In der Hoffnung , wird es hilfreich sein, das Projekt zur Verfügung steht hier .

Ich habe das gleiche Problem mit Knoten v9.7.1.

Ich füge der Dokumentation hinzu, dass Sie möglicherweise Headers für Ihre Ziellaufzeitumgebung polyfillen müssen. Außerdem werden weitere Verbesserungen in #93 besprochen, daher werde ich dieses Ticket schließen.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen