@as-integrations/koa
用于 TypeScript/JavaScript 图形QL 中间软件 @apollo/server
开始: Koa 中间软件
阿波罗服务器启用了添加中间软件的能力,使您能够运行您的 GraphQL 服务器,作为由 Koa 构建的应用程序的一部分, Koa 是节点最受欢迎的网络框架之一.
首先,安装阿波罗服务器,JavaScript执行核心GraphQL算法,Koa以及两个常见的Koa中间软件包:
npm install @as-integrations/koa @apollo/server graphql koa @koa/bodyparser @koa/cors
然后,将以下写入服务器. mjs. (通过使用 .mjs 扩展名,节点允许您在顶级使用等待关键字)
import http from "http";
import Koa from "koa";
import bodyParser from "@koa/bodyparser";
import cors from "@koa/cors";
import { ApolloServer } from "@apollo/server";
import { ApolloServerPluginDrainHttpServer } from "@apollo/server/plugin/drainHttpServer";
import { koaMiddleware } from "@as-integrations/koa";
// The GraphQL schema
const typeDefs = `#graphql
type Query {
hello: String
}
`;
// A map of functions which return data for the schema.
const resolvers = {
Query: {
hello: () => "world",
},
};
const app = new Koa();
const httpServer = http.createServer(app.callback());
// Set up Apollo Server
const server = new ApolloServer({
typeDefs,
resolvers,
plugins: [ApolloServerPluginDrainHttpServer({ httpServer })],
});
await server.start();
app.use(cors());
app.use(bodyParser());
app.use(
koaMiddleware(server, {
context: async ({ ctx }) => ({ token: ctx.headers.token }),
})
);
await new Promise((resolve) => httpServer.listen({ port: 4000 }, resolve));
console.log(`🚀 Server ready at http://localhost:4000`);
现在运行您的服务器 :
node server.mjs
打开它在网页浏览器中打印的 URL 。 它将显示阿波罗沙盒,一个运行GraphQL操作的网络工具. 尝试运行操作 query { hello }来啊!