“无效的URL:单词”-阿波罗服务器

时间:2020-04-20 16:35:45

标签: graphql apollo-server

我想使用GraphqQL,ApolloServer创建一个小项目,但是遇到一个我无法解决的问题。
我是根据一些文档写的。

const { ApolloServer, gql } = require('apollo-server');
const { RESTDataSource } = require('apollo-datasource-rest');

const typeDefs = gql`
  type Word {
    id: ID!
    word: String!
    translation: String!
  }
  type Query {
    words: [Word]
    word(id: ID): Word
  }
`;

class WordsAPI extends RESTDataSource {
  constructor() {
    super();
    this.baseURL = 'localhost:5001/'
  }

  async getWord(id) {
    return this.get(`word/${id}`)
  }

  async getAllWords() {
    return this.get('words')
  }

  async getSpecifiedWords(SpecWord) {
    return this.get(`words/${SpecWord}`)
  }
}

const resolvers = {
  Query: {
    words: (_, __, { dataSources }) =>
      dataSources.wordsAPI.getAllWords(),
    word: async (_source, { id }, { dataSources }) => {
      return dataSources.wordsAPI.getWord(id);
    }
  }
}

const server = new ApolloServer({
  typeDefs,
  resolvers,
  dataSources: () => {
    return {
      wordsAPI: new WordsAPI()
    };
  },
  context: () => {
    return {
    };
  },
});

server.listen().then(({ url }) => {
  console.log(`?  Server ready at ${url}`);
});

之后

query {
 words {
   translation
 }
}

在操场上,我收到无效的URL:单词。
在localhost:5001 / words是数据库,在Postman中它可以工作。 我有什么不好?

0 个答案:

没有答案