npm 包 ember-apollo-server 使用教程

什么是 ember-apollo-server?

ember-apollo-server 是一个基于 Ember.js 和 Apollo 的服务器端框架。它能够帮助开发者快速地构建 GraphQL API。它支持数据响应式更新和实时订阅,让开发者可以轻松地构建实时应用。另外,它还支持多数据库后端,包括 Mongo, PostgreSQL, etc.

使用 ember-apollo-server,我们可以在应用程序中轻松集成其他库,并通过浏览器或移动端访问这些 API。总之,它是一个受欢迎的服务器端框架,值得尝试。

开始使用 ember-apollo-server

步骤一:创建一个新的 Ember 应用程序

首先,需要创建一个全新的 Ember 应用程序。在终端中,运行以下命令:

----- --- ------------

该命令将创建一个名为 my-ember-app 的新应用程序。

步骤二:安装依赖库

完成应用程序的创建后,需要安装 ember-apollo-server 并且将其链接到应用程序中。

在终端中,运行以下命令:

----- ------- ------------- -------------------

步骤三:创建服务器端逻辑

在创建完应用程序并安装了所需的依赖库后,需要创建服务器端逻辑。我们可以通过运行以下命令来完成此操作:

----- - ------------- ---------

该命令将在 my-ember-app/app 目录下自动生成 server 目录,并为您创建服务器端逻辑的初始结构。

-  ------------ ----- - ------------- ---------
----------
  ------ -----------
  ------ -----------------------
  ------ --------------------
  ------ --------------------------
  ------ -------------------
  ------ -------------------------------

步骤四:添加 GraphQL schema

下一步,需要在 app/server/schema.js 中添加 GraphQL schema。schema 是您用来定义服务器暴露的 query、mutation 和 subscription 的方式。

以下是 sample todo GraphQL schema:

------ - --- - ---- ------------------------

------ ------- ----
  ---- ----- -
    ------ ------
  -

  ---- ---- -
    --- ---
    ----- -------
    ---------- --------
  -

  ---- -------- -
    ------------- -------- ---------- ---------- ----
  -

  ---- ------------ -
    ---------- ----
  -
--

步骤五:添加 GraphQL resolvers

接下来,需要实现 app/server/resolvers.js 中的 GraphQL resolvers。

这些 resolvers 是将客户端查询转换为服务器数据的函数。它们可以基于硬编码的值或来自数据源的其他数据。

以下是 sample todo GraphQL resolvers:

------ ------- -
  ------ -
    ------ ----- --- --- - ----------- -- -- -
      ------ -----------------------------
    --
  --
  --------- -
    -------- ----- --- - ----- --------- -- - ------------ ------ -- -- -
      ----- ------- - ----- ---------------------------
        -----
        ----------
      ---

      ---------------------------- - ---------- ------- ---
      ------ --------
    --
  --
  ------------- -
    ---------- -
      ---------- --- --- - ------ -- -- -------------------------------------
    --
  --
--

步骤六:添加服务器数据源

接下来,需要在 app/server/data-sources.js 中定义服务器数据源。数据源是用来引用实现数据访问逻辑的对象。

以下是 sample todo 数据源:

------ ------- ----- -------- -
  ------------- -
    -- ------ -----
  -

  ------------ ----- --------- -- -
    -- ------ ----
    -- ------ ----
  -
-

步骤七:将服务器连接到应用程序

最后一步是在 app/server/index.js 中启动服务器。

以下是 sample todo 服务器:

------ - ------------ - ---- ------------------------
------ - -------------------- - ---- ----------------
------ ------- ---- ----------
------ - ------------ - ---- -------
------ ------ ---- ------------------------

------ -------- ---- -----------
------ --------- ---- --------------
------ -------- ---- -----------------

----- --- - ----------

----- ------ - ----------------------
  ---------
  ----------
---

----- ------ - --- ---------

----- ------ - --- --------------
  -------
  ------------ -- -- --
    --------- --- -----------
  ---
  -------- -- ---- ---------- -- -- -
    -- ------------ -
      ------ - ---------------------- ------ --
    -

    ------ - ------ --
  --
  -------------- -
    ---------- ------------------ ---------- -- -
      -- ------- -------------- -- ----- ---------- ------ -----------
    --
  --
---

------------------------ --- ---

----- ---------- - ------------------
-----------------------------------------------

------------------- ----- ---- -- -- -- -
  --------------- ------ ----- -- ---------------------------------------------
  --------------- ------------- ----- -- -------------------------------------------------
---

步骤八:测试服务器

完成服务器的启动后,可以通过访问 http://localhost:4000 来测试 API。

您可以将以下内容粘贴到 GraphiQL 中并执行:

-------- ------- -
  ------------- ---- ------ ---------- ------ -
    --
    ----
    ---------
  -
-

------------ ----------- -
  --------- -
    --
    ----
    ---------
  -
-

在添加一个新的 todo 后,您将能够在订阅器中看到以下内容:

-
  ------- -
    ------------ -
      ----- ----
      ------- ---- ------
      ------------ -----
    -
  -
-

结论

以上是 ember-apollo-server 官方文档简单教程。希望对大家有所帮助,大家可以进一步去探索 GraphQL 和 ember-apollo-server 的更多用法和技术细节。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60065f7f238a385564ab6add


猜你喜欢

  • npm 包 express-lowercase-paths-with-status-code 使用教程

    简介 express-lowercase-paths-with-status-code 是一款用于 Express 框架下将 URL 转换为小写的 npm 包。它能够将使用者上传的 URL 路径转化为...

    3 年前
  • npm 包 convertlab-scaffold 使用教程

    npm 包 convertlab-scaffold 是一款前端工程化开发工具,旨在方便开发者快速搭建基础项目框架和开发环境。本文将为您详细介绍该工具的使用,包括安装、初始化、配置和使用等方面。

    3 年前
  • npm 包 node-red-contrib-nfcpy-id 使用教程

    在前端开发中,使用 npm 包可以让我们更方便地集成外部库和功能。在这篇文章中,我们将介绍一个 npm 包 node-red-contrib-nfcpy-id,它提供了一些很方便的功能,可以帮助我们轻...

    3 年前
  • NPM 包 Netl 使用教程

    前言 现代化的前端开发人员用到的最重要的工具之一是NPM,它是一个包管理器,允许您从它的大型仓库中下载各种软件包,使您的代码富有可维护性,易于重用。本文将介绍一个名为Netl的NPM包,它是一个轻量级...

    3 年前
  • npm 包 pinus-xgq 使用教程

    介绍 pinus-xgq 是一款基于 pinus 开发的插件,旨在为前端开发提供更加便捷和高效的操作方式。它支持实时通信、RPC 调用、全局事件监听和对象存储等功能,可广泛应用于游戏、社交、电商等领域...

    3 年前
  • npm 包 ipc-link-core 使用教程

    在前端应用程序的开发中,我们有时需要在不同的进程之间通信,比如一个 electron 应用程序中的渲染进程和主进程之间的通信。在这种场景下,我们可以使用 ipc(进程间通信) 来进行进程间的数据传递。

    3 年前
  • npm包megadraft-denistsuman使用教程

    随着前端技术的不断更新和发展,前端开发人员需要不断了解和掌握各种新的工具和技术。本文将介绍一个非常实用的npm包megadraft-denistsuman,它是一款类似于富文本编辑器的插件,可以方便地...

    3 年前
  • npm 包 node-https-loader 使用教程

    最近在进行前端项目的开发过程中,我们需要引入一些第三方的 JavaScript 库,很多时候会遇到误加载 HTTP 资源的问题。为了解决这个问题,我们可以使用一个名为 node-https-loade...

    3 年前
  • npm 包 webix-polyglot 使用教程

    简介 webix-polyglot 是一个基于 Webix 框架的国际化组件,支持多语言切换,并且可以自定义语言包。本文将详细介绍 webix-polyglot 的使用方法,并提供示例代码。

    3 年前
  • npm 包 gitbook-plugin-qrcode 使用教程

    介绍 QR Code 是一种二维码,可以用来存储文本、链接等信息。在移动设备上,可以使用相机扫描二维码获取信息。gitbook-plugin-qrcode 是一个 npm 包,可以生成二维码,并在 g...

    3 年前
  • npm 包 menreiki2 使用教程

    本文介绍了 npm 包 menreiki2 的使用教程,包含了详细的说明和示例代码,旨在帮助前端开发者更好地使用该工具,提高开发效率。 什么是 menreiki2 menreiki2 是一个用于创...

    3 年前
  • Nuxt 动态标签管理 NPM 包使用教程

    Nuxt.js 是一个基于 Vue.js 的服务端渲染应用框架,能够帮助开发者快速搭建 SSR 应用。在 SSR 应用中,使用合适的标签管理工具可以提高页面加载速度和 SEO 呈现效果。

    3 年前
  • npm 包 gulp-impale 使用教程

    前言 随着前端技术的不断发展,前端工程化工具也越来越多,其中最流行的之一就是 Gulp。作为一款基于 Node.js 的自动化构建工具,Gulp 能够自动化处理压缩、编译、转换、合并等一系列任务,极大...

    3 年前
  • npm 包 combon 使用教程

    在前端开发中,有很多常用的工具和库,其中 npm 是受欢迎的前端包管理工具,它能帮助我们便捷地安装、管理和更新一些第三方库和工具,减少我们从事基础工作的时间和精力。

    3 年前
  • npm 包 telehook 使用教程

    什么是 Telehook? Telehook 是一个 npm 包,用于将 Webhook 传递到 Telegram bot。它可以将来自任何来源的 Webhook 转发到您的 Telegram bot...

    3 年前
  • npm包@tableflip/react-native-navbar使用教程

    引言 在 React Native 开发中,导航栏(navbar)是一个必不可少的组件,它可以帮助我们实现页面的切换和导航。而@tableflip/react-native-navbar便是一个功能强...

    3 年前
  • npm 包 @tableflip/ipfs-filexp: 使用教程

    IPFS(InterPlanetary File System)是一个分布式的、点对点的文件系统,它可以让用户在相互信任的节点之间共享文件。@tableflip/ipfs-filexp 是一个基于 I...

    3 年前
  • npm 包 rpscript-api-adm-zip 使用教程

    前言 在前端开发中,我们通常需要处理和打包各种资源文件,例如压缩文件、加密文件等等。而 ADM-ZIP 是一个轻量级的 Node.js 模块,可以用来创建和提取 ZIP 格式的文件。

    3 年前
  • npm 包 sortable-tree-smartweb-theme 使用教程

    Sortable Tree 是一款基于 React 的树形控件,它支持在页面上展示树形结构,并且可以进行节点的拖拽、编辑等操作。而 sortable-tree-smartweb-theme 则是一款可...

    3 年前
  • npm 包 ng2-bar-rating 使用教程

    随着前端技术的日益发展,使用第三方库已经成为了大部分前端开发者的日常。其中,npm 市场上拥有众多的优秀包供我们使用。ng2-bar-rating 是一个用于 Angular2+ 的评分插件包,是一个...

    3 年前

相关推荐

    暂无文章