【发布时间】:2022-03-23 21:22:48
【问题描述】:
我是 GraphQL 的新手。当我从 Apollo GraphQL 文档中复制这段代码(并且只为 console.log 错误添加一行)时,我遇到了这个问题。请告诉我如何解决它。
const { ApolloServer, gql } = require('apollo-server-express');
const express = require('express');
const typeDefs = gql`
type Book {
title: String
author: String
}
type Query {
books: [Book]
}
`;
const books = [
{
title: 'The Awakening',
author: 'Kate Chopin',
},
{
title: 'City of Glass',
author: 'Paul Auster',
},
];
const resolvers = {
Query: {
books: () => books,
},
};
const server = new ApolloServer({
typeDefs,
resolvers,
formatError: (err) => console.log(err), // <-- only add 1 more line
});
(async () => {
const app = express();
await server.start();
server.applyMiddleware({ app });
app.listen(4000);
})();
这是我的package.json
"dependencies": {
"apollo-server-express": "^3.6.3",
"express": "^4.17.2",
"graphql": "^16.3.0"
}
然后,当我在http://localhost:4000/graphql 打开graphql studio playground -> 点击Query your server -> 我在终端上收到此错误
[ValidationError: Cannot query field "_service" on type "Query".] {
locations: [ { line: 2, column: 9 } ],
path: undefined,
extensions: {
code: 'GRAPHQL_VALIDATION_FAILED',
exception: { stacktrace: [Array] }
}
}```
【问题讨论】:
-
我无法重现您的错误。我设置了与上述相同的测试,并且在查询服务时没有收到任何错误。您在操场上使用的查询是什么?哦,顺便说一句,您不需要将
express添加到您的项目中,它已经包含在apollo-server-express中。
标签: node.js graphql apollo-server