Apollo Server 2.x express 中间件

Posted

技术标签:

【中文标题】Apollo Server 2.x express 中间件【英文标题】:Apollo Server 2.x express middleware 【发布时间】:2019-06-08 01:18:49 【问题描述】:

我使用的是 Apollo Server 2.x(不是 Apollo Server Express)

我喜欢添加一些快速中间件

在这种情况下,我是否需要迁移以使用 apollo-server-express 以添加 express 中间件?或者 apollo server 2.x 可以容纳 express 中间件

如果是 apollo server 2.x,能否指出我如何将 apollo server 2.x 与 express 中间件一起使用的文档?

提前谢谢你

【问题讨论】:

【参考方案1】:

虽然apollo-server 确实在后台使用了express,但它故意不提供配置其他中间件的方法。其目的是使其对express 的使用是透明的——它可以在未来使用hapi 或其他一些库,而不会破坏现有的实现。如果您需要将apollo-serverexpress 集成,则应使用apollo-server-express。迁移很简单:

阿波罗服务器

const server = new ApolloServer( typeDefs, resolvers );

const port = 4000;

server.listen( port );

apollo-server-express

const server = new ApolloServer( typeDefs, resolvers );

const app = express();
server.applyMiddleware( app );

const port = 4000;

app.listen( port );

【讨论】:

以上是关于Apollo Server 2.x express 中间件的主要内容,如果未能解决你的问题,请参考以下文章

Apollo-Server-Express 未收到上传对象

如何使用 Express 和 Apollo-Server 获取 HTTP 授权标头

升级到 apollo-server-express 2.0.0 缺少上下文

是否可以将 apollo-server-express 部署到 lambda?

apollo-server-express:如何解决内部订阅问题?

graphql + apollo-server-express,如何处理 express authMiddleware 中的身份验证错误?