使用自述文件及其轰炸尝试了节点 8 中的基本代码。
/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)
下面附上源码
gql-play.zip
➜ gql-play node -v
v8.9.3
我能够通过将标题放在全局对象上来解决它。
const fetch = require('node-fetch');
global.Headers = fetch.Headers;
我试图在这里重现它: https :
使用您的示例,我遇到了同样的问题,也尝试使用节点 6.1,结果相同。
我想我在用 node9 运行? 我需要降级我的节点,看看是否会重现。 我有其他节点问题。
他们是否在节点 9 中向 global 添加了 Headers? https://runkit.com/trashhalo/5a4d5779ceaa39001278edbe 9.3.0 似乎仍然出错
@trashhalo我使用的是 v9.3.0——你还在出现这个问题吗?
嘿@trashhalo——我刚刚运行了你的测试应用程序,你是对的,当我尝试直接将链接休息作为节点脚本运行时,我遇到了同样的缺少标题的问题。
我能够通过执行以下操作来解决这个问题:
global.Headers = global.Headers || require("fetch-headers");
然而,很明显,这是在解决问题。 -- 不幸的是,当我这样做时,我收到ReferenceError: gql is not defined
的错误
我不完全确定我们是否希望在纯节点环境中调用时链接休息能够工作? 想法?
哦好的。 我不介意 polyfill 假设它有效的问题。
大家好,
节点 v8.94
OS X 10.11.6
Next.JS v 5.0.1-canary.4
我安装了Advanced Example ,将所有依赖项更新为最新,一切都很好。
然后我将src/SearchShow.js
和支持<ApolloProvider>
(和 deps)复制到一个新项目中,在 Next.JS 下运行,问题出现了。
我应用了@fbartho 的 polyfill ,问题不再出现。 另外,我没有看到@fbartho 报告的ReferenceError: gql is not defined
错误。
希望它会有所帮助,该项目可在此处获得。
我对节点 v9.7.1 有同样的问题。
我正在向文档中添加您可能需要为目标运行时环境 polyfill Headers
的文档,此外,#93 中正在讨论进一步的增强功能,因此我将关闭此票证。
最有用的评论
我能够通过将标题放在全局对象上来解决它。