Apollo Graphql与Fastify[英] Apollo Graphql with Fastify

本文是小编为大家收集整理的关于Apollo Graphql与Fastify的处理/解决方法,可以参考本文帮助大家快速定位并解决问题,中文翻译不准确的可切换到English标签页查看源文。

问题描述

我一直在尝试使用Fastify运行Apollo ghraphql Server.下面的索引文件代码段: -

const { ApolloServer } = require('apollo-server-fastify');
const fastify = require('fastify')({ logger: true })
const config = require('./config')

const { typeDefs, resolvers } = require('./schema');
const server = new ApolloServer({
  typeDefs,
    resolvers
});

fastify.register(server.createHandler());
(async function () {
  await fastify.listen(config.port, config.host, (err) => {
    if(err) {
      console.log(err)
      process.exit(1)
    } else {
      console.log(`API server listening on port ${config.port} and host ${config.host}`)
    }

  })
})();

和我的模式就像

const { gql } = require("apollo-server");

const typeDefs = gql`
    type Query {
        items: [Item!]!
        item: Item,
        hello: String!
    }
    type Item {
        id: ID!
        name: String!
        message: String!
    }
`;

const resolvers = {
    Query: {
        hello: () => "Hello World",
        items: () => {
      return {
        id: 1,
        name: 'test',
        message: 'test111'
      }
    },
    }
};

module.exports = {
    typeDefs,
    resolvers
};

当我启动服务器并尝试访问http://localhost:3000/graphql时,我会收到消息"丢失查询".在屏幕上.

我正在引用此 - Apollo-Server-Fastify .我错过了任何步骤吗?请帮助.

推荐答案

现在Fastify V3已经发布了几周前,并非所有生态系统都已升级.

因此,您需要安装快速v2 npm i fastify@2,因为现在最新的是v3.

本文地址:https://www.itbaoku.cn/post/1938159.html

问题描述

I have been trying to run Apollo Ghraphql server with Fastify. Code snippet for index file below:-

const { ApolloServer } = require('apollo-server-fastify');
const fastify = require('fastify')({ logger: true })
const config = require('./config')

const { typeDefs, resolvers } = require('./schema');
const server = new ApolloServer({
  typeDefs,
    resolvers
});

fastify.register(server.createHandler());
(async function () {
  await fastify.listen(config.port, config.host, (err) => {
    if(err) {
      console.log(err)
      process.exit(1)
    } else {
      console.log(`API server listening on port ${config.port} and host ${config.host}`)
    }

  })
})();

And my schema is like

const { gql } = require("apollo-server");

const typeDefs = gql`
    type Query {
        items: [Item!]!
        item: Item,
        hello: String!
    }
    type Item {
        id: ID!
        name: String!
        message: String!
    }
`;

const resolvers = {
    Query: {
        hello: () => "Hello World",
        items: () => {
      return {
        id: 1,
        name: 'test',
        message: 'test111'
      }
    },
    }
};

module.exports = {
    typeDefs,
    resolvers
};

When I start the server and try to access http://localhost:3000/graphql I am getting message "GET query missing." on the screen.

I am referring this - https://www.npmjs.com/package/apollo-server-fastify. Am I missing any step. Please help.

推荐答案

Right now fastify v3 has been released few weeks ago and not all the ecosystem has been upgraded as well.

So you need to install fastify v2 npm i fastify@2 since right now the latest is v3.