【发布时间】:2021-12-04 22:24:20
【问题描述】:
这里,
http://https:%20www.apollographql.com/docs/apollo-server/integrations/middleware/#apollo-server-express
作为将 express 与他们使用的 apollo-server 集成的逻辑
import { ApolloServer } from 'apollo-server-express';
import { ApolloServerPluginDrainHttpServer } from 'apollo-server-core';
import express from 'express';
import http from 'http';
async function startApolloServer(typeDefs, resolvers) {
const app = express();
const httpServer = http.createServer(app);
const server = new ApolloServer({
typeDefs,
resolvers,
plugins: [ApolloServerPluginDrainHttpServer({ httpServer })],
});
await server.start();
server.applyMiddleware({ app });
await new Promise(resolve => httpServer.listen({ port: 4000 }, resolve));
console.log(`???? Server ready at http://localhost:4000${server.graphqlPath}`);
}
server.applyMiddleware({ app }); 是什么意思,我知道“app”是一个快速应用程序实例,但为什么将它作为中间件传递给 apollo-server.. 它不是中间件本身!!!
我理解像这样将特殊的真实中间件(称为 rest)传递给服务器 app.use(server.getMiddleware(rest)) 我需要了解在应用中间件中传递应用程序
【问题讨论】:
标签: express graphql apollo middleware apollo-server