【问题标题】:Migrating to 3.5.0 with apollo-server-express使用 apollo-server-express 迁移到 3.5.0
【发布时间】:2021-12-20 16:56:56
【问题描述】:

我正在尝试将我的一个项目的版本从节点 12.x.x 更新到节点.14.x.x。 现在我看到了 apollo 迁移到 v3 的文档,但完全不清楚有人知道从哪里开始?从头开始制作所有的阿波罗零件系统会更容易吗? 应更新的当前文件:

const { ApolloServer } = require('apollo-server-express');
const { makeExecutableSchema } = require('graphql-tools');
const { applyMiddleware } = require('graphql-middleware');
const { gql } = require('apollo-server-express');
const { resolvers, typeDefs } = require('graphql-scalars');

const { types } = require('./typedefs/types');
const { inputs } = require('./typedefs/inputs');
const { queries } = require('./typedefs/queries');
const { mutations } = require('./typedefs/mutations');

const customResolvers = require('./resolvers');
const { permissions } = require('./permissions/permissions');

const graphqlApis = gql`
  ${types}
  ${queries}
  ${inputs}
  ${mutations}
`;

const schema = makeExecutableSchema({
  typeDefs: [...typeDefs, graphqlApis],
  resolvers: {
    ...customResolvers,
    ...resolvers,
  },
});

const server = new ApolloServer({
  context: ({ req }) => {
    const headers = req.headers || '';
    return headers;
  },
  schema: applyMiddleware(schema, permissions),
});

module.exports = server;
尝试运行时的当前错误:Error: You must 'await server.start()' before calling 'server.applyMiddleware()'

我只是想获得一些解决方案/帮助/见解。

【问题讨论】:

    标签: graphql apollo apollo-server graphql-js


    【解决方案1】:

    如文档中所述,您需要用异步函数包围您的代码 https://www.apollographql.com/docs/apollo-server/migration/

        (async function () {
           // ....
        })();
    

    或者像这样:... 首先定义你的 typeDefs 和解析器

    const typeDefs = "" // your typedefs here
    const resolvers = "" // your resolvers here
    async function startApolloServer(typeDefs, resolvers) {
      // Apollo Express 3.5.x code goes here
      // ....
      await server.start();
     // promise resolve...
    }
    startApolloServer(typeDefs, resolvers)
    

    【讨论】:

    • 是的,最后我做了类似的事情,谢谢。
    • 欢迎......我一开始也被困在那里:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-02
    • 1970-01-01
    • 1970-01-01
    • 2021-07-31
    • 1970-01-01
    • 2018-04-24
    相关资源
    最近更新 更多