【问题标题】:Integrating Apollo to meteor app将 Apollo 集成到流星应用程序
【发布时间】:2018-06-09 07:19:30
【问题描述】:

当我尝试将 apollo 服务器集成到流星应用程序时,我一尝试打开 graphiql 就会出错。如果我创建一个快速应用程序并将其与webapp.connectHandlers 连接,并将阿波罗服务器放置到该快速应用程序的路线之一,事情就可以工作,但它们不能以“流星方式”工作,我真的很想拥有,因为我可以访问用户对象、授权等。

错误,我一加载就在 graphiql 中看到:

Error: Schema must be an instance of GraphQLSchema. Also ensure that there are not multiple versions of GraphQL installed in your node_modules directory

堆栈跟踪: at invariant (/Users/.../node_modules/graphql/jsutils/invariant.js:18:11)<br> &nbsp; &nbsp;at Object.validate (/Users/.../node_modules/graphql/validation/validate.js:59:72)<br> &nbsp; &nbsp;at doRunQuery (/Users/.../node_modules/apollo-server-core/dist/runQuery.js:88:38)<br> &nbsp; &nbsp;at /Users/.../node_modules/apollo-server-core/dist/runQuery.js:22:54<br> &nbsp; &nbsp;at /Users/.../.meteor/packages/promise/.0.10.0.borizy.o9z8++os+web.browser+web.cordova/npm/node_modules/meteor-promise/fiber_pool.js:43:40

服务器代码:

import {makeExecutableSchema} from 'graphql-tools';
import {typeDefs} from './schema';
import {resolvers} from './resolvers';
import { createApolloServer } from 'meteor/apollo';

export const schema = makeExecutableSchema({
  typeDefs,
  resolvers
});

createApolloServer({
  schema
});

一切似乎都是合法的,并且适用于 express,但不适用于流星。是什么原因?我该如何解决?

【问题讨论】:

    标签: meteor graphql apollo apollo-client apollo-server


    【解决方案1】:

    还要确保你的 node_modules 目录中没有安装多个版本的 GraphQL

    如果是这个问题,那就解决

    rm -rf node_modules/*
    npm install
    

    【讨论】:

    • 我已经仔细检查了 - 我没有多个版本的 graphql。只有一个版本,我也尝试过 yarn 的解决方案,以确保即使有多个版本,也只会使用一个 - 没有骰子(
    【解决方案2】:

    meteor/apollo 的当前版本与最新的 apollo npm 软件包已过时。 https://github.com/Swydo/ddp-apollo 是最新的并以“流星方式”进行集成?

    【讨论】:

    • ddp-apollo 不是一个选项,因为我想逐渐从流星、ddp 和所有废话切换,这就是为什么迁移到 ddp-apollo 没有多大意义,因为我最终会使用几乎是一样的。也许您对导致我的错误的确切问题有所了解,以便我可以自行修复?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    • 1970-01-01
    • 2023-03-28
    • 2017-03-07
    • 2018-05-05
    • 1970-01-01
    • 2019-06-17
    相关资源
    最近更新 更多