Я следую учебному пособию по полному стеку для 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