@as- institutions/cloudflare-works( 团结) 工作人
将Cloudflare Workers作为阿波罗服务器的托管服务的集成.
快速启动
- 读取分步骤教程 : https://viblo.asia/p/y37Ldv3y4ov (中文(简体) )
- 检查仓库模板 : https://github.com/kimyvgy/worker-apollo-server-template 页面存档备份,存于互联网档案馆
- 现场演示 : https://worker-apollo-server.teguru.workers.dev. (原始内容存档于2018-03-29)
安装
npm add @apollo/server @as-integrations/cloudflare-workers graphql
使用量
您必须启用节点. js 兼容性特性, 在文件中添加以下旗帜 wrangler.toml数字 :
compatibility_flags = ["nodejs_compat"] # wrangler v4
# node_compat = true # or wrangler v3
import { ApolloServer } from '@apollo/server';
import { startServerAndCreateCloudflareWorkersHandler } from '@as-integrations/cloudflare-workers';
import { ApolloServerPluginLandingPageLocalDefault } from '@apollo/server/plugin/landingPage/default';
const typeDefs = `#graphql
type Query {
example: String!
}
`;
const resolvers = {
Query: {
example: () => {
return 'Hello universe!';
},
}
}
interface Context {
token: string
}
const server = new ApolloServer<Context>({
typeDefs,
resolvers,
introspection: true,
plugins: [
ApolloServerPluginLandingPageLocalDefault({ footer: false }),
],
});
export interface Env {
// ...
}
export default {
fetch: startServerAndCreateCloudflareWorkersHandler<Env, Context>(server, {
context: async ({ env, request, ctx }) => {
return { token: 'secret' };
},
}),
};
额外奖金
云花波来普来特
Cloudflare提供官方执行 浩诺您可以在 云层/工人-绘图-服务器。 。 。 .
德诺支持
这个例子与 德诺 因为它遵循 Web API 标准并支持 获取随着德诺的内置 Deno.serve (英语),您可以用最小的改动运行它.
重要注释 :
- 如果使用Node.js软件包,请向
deno.json或使用npm:前缀.
# instead of:
import { ApolloServer } from '@apollo/server';
# we use:
import { ApolloServer } from 'npm:@apollo/server';
- 对于更多的控制,请修改设置 :
type Env = {};
type Context = { token: string };
const handler = startServerAndCreateCloudflareWorkersHandler<Env, Context>(server, {
context: async () => ({ token: 'secret' }),
});
Deno.serve({ port: 3000 }, (req) => handler(req, {} satisfies Env, { token: '' } satisfies Context));
- 现场演示 : 德诺游戏场