我正在学习 GraphQL 并尝试使用 Express (v4) 设置 Apollo Server,但是在发出请求时不断收到以下错误/graphql
:
req.body is not set; this probably means you forgot to set up the `json` middleware before the Apollo Server middleware.
这是我的服务器代码:
const express = require("express");
const { ApolloServer } = require('@apollo/server');
const { expressMiddleware } = require('@apollo/server/express4')
const cors = require('cors');
async function startServer() {
const app = express();
const server = new ApolloServer({
typeDefs: `
type Todo {
id: ID!
title: String!
completed: Boolean!
}
type Query {
getTodos: [Todo]
}
`,
resolvers: {
Query: {
getTodos: () => []
}
}
});
await server.start();
app.use('/graphql', cors(), express.json(), expressMiddleware(server));
const PORT = process.env.PORT || 8000;
await new Promise((resolve) => app.listen(PORT, resolve));
console.log(`Server is running on port ${PORT}`);
}
startServer().catch((err) => {
console.error('Error starting the server:', err);
});
我在 expressMiddleware 之前添加了 express.json(),但错误仍然存在。我在使用 Apollo Server 和 Express 4 中间件时是否遗漏了什么?
任何帮助都值得感激!