【发布时间】:2019-07-28 07:27:44
【问题描述】:
我正在关注 Apollo 的全栈教程,每当我尝试将数据源添加到我的 Apollo 服务器时,playground 都会抛出 500 错误,并且没有其他数据可供调试。
我尝试将自省添加到 true,我删除了所有与 babel 相关的内容,完全重新导入了我的导入,因此所有内容都处于正确的格式。
如果我注释掉 dataSources,它可以正常工作,即使提供一个空函数,它也会失败。
请帮帮我,这可要了我的命!
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;
解析器.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
【问题讨论】:
-
与此错误无关(您似乎已经猜到了)参考此 - stackoverflow.com/questions/53951318/… 如果您想将架构更改为只有 api 端以根据不同的过滤器获取“啤酒厂”。跨度>
标签: graphql apollo apollo-server