首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >apollo服务器和express-graphql有什么不同

apollo服务器和express-graphql有什么不同
EN

Stack Overflow用户
提问于 2019-10-28 23:10:32
回答 3查看 14.8K关注 0票数 18

我想建立一个应用程序,它建议使用GraphQl的应用程序接口,

我不确定该选择哪个平台,有什么不同。

代码语言:javascript
复制
apollo server vs express-graphql

我也需要在项目中使用TypeScript。任何好的想法都将不胜感激。

EN

回答 3

Stack Overflow用户

发布于 2019-11-13 14:18:04

票数 10
EN

Stack Overflow用户

发布于 2021-11-06 23:30:51

请注意,其中一些参数不再适用,例如,express-grapqhl现在是用TypeScript编写的。因此,从自述文件中删除了此部分。

一种观察是阿波罗服务器过于臃肿,而且慢慢地显示出缺乏维护。如果我今天选一个的话,我会选择express-graphql。但这是个人喜好,你应该自己做尽职调查。

还有一个由社区维护的快速图形查询的Koa端口,称为koa-graphql。使用express-graphql或koa-graphql,再加上像envelop这样的东西,你可以实现阿波罗“生态系统”以更模块化的方式提供的一切。

express-graphql的比较

Apollo Server和express-graphql都是Node.js的GraphQL服务器,构建在graphql-js reference implementation之上,但有几个关键的区别:

  • express-graphql与快速和连接,阿波罗服务器支持快速,连接,Hapi,Koa和Restify.
  • Compared到express-graphql,阿波罗服务器有一个更简单的接口和只支持一种方式传递queries.
  • Apollo服务器分离服务GraphiQL (一个浏览器内的集成开发环境,用于探索GraphQL)从响应GraphQL包含解析HTTP请求主体的代码,阿波罗服务器把这个问题留给了像body-parser.
  • Apollo服务器这样的标准软件包,whitelisting.
  • Apollo服务器包括一个OperationStore来方便地管理Apollo服务器是用TypeScript构建的。

应用程序/graphql请求

express-graphql支持请求的application/graphql内容类型,这是application/json请求的替代方案,仅将查询部分作为文本发送。与我们使用bodyParser.json解析apollo服务器的application/json请求的方式相同,我们可以使用bodyParser.text加上一个额外的步骤,以便也解析application/graphql请求。下面是Express的一个示例:

‘’body parser‘;从’apollo-server-express‘导入{ graphqlExpress };const myGraphQLSchema = // ...在此处定义或导入您的架构!const helperMiddleware = bodyParser.json(),bodyParser.text({ type:‘应用程序/图形if’}),(请求,资源,下一个) => {if(req.is(‘应用程序/图形if’)){ req.body ={ query: req.body };} next();};express() .use('/graphql',...helperMiddleware,graphqlExpress({ schema: myGraphQLSchema })) .listen(3000);`

票数 6
EN

Stack Overflow用户

发布于 2021-01-04 04:56:25

Express-GraphQL是一个中间件,用于快速设置GraphQL服务器,无论是使用Express,还是支持中间件的任何web框架。

Apollo-server是一个将驻留在现有节点服务器上并解析GraphQL查询的包。(非常类似于express-graphql)你可以把它和express,Koa等一起使用。

我的建议是使用Graphql-yoga,因为它是用apollo-server和express-graphql构建的。它是由Prisma Team构建和维护的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58593497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档