在Apollo Server中,server.applyMiddleware({app})是用于将GraphQL应用程序集成到现有的Express或Connect服务器上的方法。Express是一种常用的基于Node.js的Web框架,而Connect是可以让 Node.js Web 应用程序跑的一种中间件,server.applyMiddleware方法是通过将GraphQL应用作为Express或Connect应用程序的中间件来启用以下功能:
以下是server.applyMiddleware的示例代码(使用了Express框架):
const express = require('express');
const { ApolloServer, gql } = require('apollo-server-express');
const typeDefs = gql`
type Query {
hello: String
}
`;
const resolvers = {
Query: {
hello: () => 'Hello world!'
}
};
const server = new ApolloServer({
typeDefs,
resolvers
});
const app = express();
server.applyMiddleware({ app });
app.listen({ port: 4000 }, () =>
console.log(`� Server ready at http://localhost:4000${server.graphqlPath}`)
);
在这个例子中,server.applyMiddleware()通过将GraphQL应用作为Express应用程序中间件运行来启用服务器。当我们访问http://localhost:4000/graphql时,将会拥有一个基于GraphQL的API接口。