Deno 是一个现代化的 JavaScript/TypeScript 运行时,它提供了一种对 Node.js 的替代方案,同时它内置了一个现代化的安全模型,使得我们可以通过引入需要的依赖,而不暴露我们的机器中的机密文件。GraphQL 是一个由 Facebook 开源的数据查询语言和运行时,它提供了一种API设计领域的新方法,它更加灵活和自适应于不断变化的需求之中。在本文中,我们将会讨论如何在 Deno 中使用 GraphQL。
安装依赖
我们可以在 Deno 中使用任何我们想要的 GraphQL 包、模块、库以及工具,可以通过 Dero.land 进行查找。在本文中,我们将使用 deno-graphql 这个模块。
-- -------------------- ---- ------- ------ - ------------ ------ - ---- --------------------------------- ------ - ------------- --- - ---- ----------------------------------------- ----- --- - --- -------------- ----- ----- - ---- ---- ---- - --- --- ----- ------- ----- -------- - ----- --------- - ----- ------- ----- -------- - ---- ----- - ------ ------- -------- ----- ---- - ---- -------- - -------------- ------------ ----- -------------- ---- ------ ------------ ----- -------------- ----- --- - -- ----- ----- - -- --- ---- ----- ------- ---- ---- ------ ----- ----- -- - --- ---- ----- ----- --- --- ------- ----- ---- --- ----- --------- - - ------ - ------ -- -- ------ ----- --- - -- -- -- --------------- -- ------- --- --- -- --------- - -------- --- - ----- -- -- - ----- ---- - - --- ------------ - -- -------- -- ----------------- ------ ----- -- ----------- --- - --- ----- -- -- - ----- --- - -------------------- -- ------- --- ---- ----- ---- - - -------------- -------- -- ----------------- -- ------ ------ ----- -- ----------- --- - -- -- -- - ----- --- - -------------------- -- ------- --- ---- ----------------- --- ------ --- - - -- ----- -------------- - -------------- ------- --------- ------ ---------- --- -------------------------------- --------------------------------- ----- ------------ ----- ---- ---
在我们的代码中,我们首先导入了 oak
中的 Application
和 Router
模块,以及 oak_graphql
中的 applyGraphQL
和 gql
模块。接着,我们定义了一个简单的GraphQL Schema,并且在我们的Resolver函数中导入了 todos
数据,并通过添加、更新,或者删除操作,实现了响应我们的Mutation和Query操作的功能。
最后,我们通过 applyGraphQL
方法进行应用程序和路由的绑定,并且将 HTTP 请求路由到 GraphQL 服务中。我们通过监听端口 8000
,启动了我们的服务。在终端中执行以下命令来启动我们的服务。
deno run --allow-net app.ts
我们可以通过访问 http://localhost:8000/graphql
地址来查询我们添加过的待办清单,例如:
query { todos { id text done } }
我们可以看到如下响应结果:
-- -------------------- ---- ------- - ------- - -------- - - ----- ---- ------- ------- ---- ---- ------ ------- ----- -- - ----- ---- ------- ----- --- --- ------- ------- ---- - - - -
总结
在本文中,我们了解了如何在 Deno 中使用 GraphQL。我们看到了如何安装依赖、查询待办清单和启动服务器。我们的示例程序是一个简单的 GraphQL 应用程序,使用了一个内存中的数据源,并可以执行添加、更新、删除和查询待办事项的操作。
Deno 作为一个新兴的 JavaScript/TypeScript 运行时,它的使用与学习正在迅速发展——而 GraphQL 似乎是其设计中所打造的部分。DOM 和网络 I/O 等的浏览器原生模块支持,已经是 Deno 所需要的增量节点。当然,在未来的一些实践中,这让人相信,这可能只是 Deno 用 GraphQL 这样开放、自我迭代且遵循标准来完成更复杂应用的开端。无论是什么,我们都可以期待 Deno 能够带来更优异的开发体验和更否得安全性的科技学习与应用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64740c55968c7c53b017cda0