«Ответ не выполнен: получен код состояния 500». Ошибка GraphQL Playground при использовании даже пустых источников данных - PullRequest
1 голос
/ 06 марта 2019

Я следую учебному пособию по полному стеку для Apollo, и всякий раз, когда я пытаюсь добавить источники данных на свой сервер Apollo, игровая площадка выдает ошибку 500 без дополнительных данных для отладки.

Я попытался добавить интроспекцию в true, я удалил все, что связано с babel, полностью переделал мой импорт, чтобы все было в правильном формате.

Если я закомментирую источник данных, он работает нормально, даже если предоставляет пустую функцию, он не работает.

Пожалуйста, помогите мне, это убивает меня!

index.js

const {ApolloServer} = require('apollo-server');
const typeDefs = require('./schema');
const resolvers = require('./resolvers');
const BreweryAPI = require('./datasources/brewery');

const server = new ApolloServer({
    typeDefs,
    resolvers,
    dataSources: () => {},
    introspection: true
});

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

schema.js

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

const typeDefs = gql`
    type Query {
        breweries: [Brewery]!
        #Get a brewery by ID
        brewery(id: ID!): Brewery

        #Get a brewery by name
        breweriesByName(name: String!): [Brewery]

        #Get a list of breweries by state
        breweriesByState(state: String!): [Brewery]

        #Get a list of breweries by tag
        breweriesByTag(tag: String!): [Brewery]
    }

    type Brewery {
        id: ID!
        name: String
        type: String
        street: String
        city: String
        state: String
        postal: String
        country: String
        latitude: String
        longitude: String
        phone: String
        url: String
        tags: [String]
    }

    type User {
        id: ID!
        email: String!
        favorites: [Brewery]
        visited: [Brewery]
        beers: Int
    }

    type RequestResponse {
        errors: [String]
        success: Boolean
    }

    type Mutation {
        #Add a favorite brewery
        addFavorite(id: ID!): RequestResponse

        #Remove a favorite brewery
        removeFavorite(id: ID!): RequestResponse

        #Add a visited brewery
        addVisited(id: ID!): RequestResponse

        #Add number of beers drank at brewery
        addBeers(beers: Int!): Int

        #Login to track your alcoholism
        login(email: String): String
    }
`;

module.exports = typeDefs;

resolvers.js

module.exports = {
    Query: {
        breweries: async (_, __, { dataSources }) => dataSources.breweryAPI.getAllBreweries()
    }
}

package.json

{
  "name": "fullstack-tutorial-server",
  "version": "1.0.0",
  "description": "",
  "main": "src/index.js",
  "scripts": {
    "test": "jest",
    "start": "node src/index.js",
    "start:ci": "node src/index.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "apollo-datasource": "^0.1.3",
    "apollo-datasource-rest": "^0.1.5",
    "apollo-server": "2.2.0-alpha.2",
    "apollo-server-testing": "2.2.0-alpha.2",
    "axios": "^0.18.0",
    "graphql": "^14.0.2",
    "isemail": "^3.1.3",
    "nodemon": "^1.18.4",
    "sequelize": "^4.39.0",
    "sqlite3": "^4.0.3"
  },
  "devDependencies": {
    "apollo-link": "^1.2.3",
    "apollo-link-http": "^1.5.5",
    "jest": "^23.6.0",
    "nock": "^10.0.2",
    "node-fetch": "^2.2.1"
  },
  "jest": {
    "testPathIgnorePatterns": [
      "/node_modules/",
      "/__utils"
    ]
  }
}

Понятия не имею, что еще нужно попробовать на данный момент, и нет других вопросов, доступных для исследования stackoverflow

1 Ответ

0 голосов
/ 06 марта 2019
const server = new ApolloServer({
    typeDefs,
    resolvers,
    dataSources: () => {},
    introspection: true
});

Должно быть

const server = new ApolloServer({
    typeDefs,
    resolvers,
    dataSources: () => ({}),
    introspection: true
});

Странный синтаксис, но он вызывает упомянутую ошибку, не знаю почему!

...