在 Node.js 中使用 Sequelize 和 GraphQL 构建 CRUD API

阅读时长 8 分钟读完

前言

随着前端技术的发展,前端开发在实现业务逻辑时需要与后端进行数据交互。而在后端开发中,常常需要使用 ORM 框架来操作数据库。目前比较流行的 ORM 框架包括 Sequelize、TypeORM 等。而在实现 API 接口时,GraphQL 也成为了一种非常流行的解决方案。本文将介绍如何使用 Sequelize 和 GraphQL 构建 CRUD API。

Sequelize 简介

Sequelize 是一款基于 Promise 的 Node.js ORM 框架,支持 MySQL、PostgreSQL、SQLite 和 MSSQL 等多种数据库。Sequelize 提供了丰富的 API 和严格的数据类型检查,使得开发者可以方便地操作数据库。

GraphQL 简介

GraphQL 是一种由 Facebook 开发的 API 查询语言和运行时,可以用于开发客户端和服务器之间的 API 接口。GraphQL 具有强大的查询和类型系统,并且在 API 设计和开发中提供了更好的灵活性和可扩展性。

使用 Sequelize 和 GraphQL 构建 CRUD API

下面我们将详细介绍如何使用 Sequelize 和 GraphQL 构建 CRUD API。

安装依赖

首先,我们需要安装一些必要的依赖:

其中,sequelize 是 Sequelize 框架,graphql 是 GraphQL 框架,express 是一个基于 Node.js 的 Web 框架,express-graphql 是一个用于将 GraphQL 添加到 Express 中的中间件,body-parser 是一个用于解析请求体的中间件。

创建数据模型

我们以一个简单的用户管理系统为例,创建一个 user 数据模型:

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

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

----- ---- - ------------------------ -
  --------- -
    ----- -----------------
    ---------- -----
  --
  --------- -
    ----- -----------------
    ---------- -----
  --
  ------ -
    ----- -----------------
    ---------- -----
  -
---
展开代码

其中,我们使用 Sequelize 定义了一个 User 数据模型,包括了 username、password 和 email 三个属性。

创建 GraphQL Schema

接下来,我们需要创建 GraphQL Schema,定义查询和变更类型:

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

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

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

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

-------------- - --- ---------------
  ------ ----------
  --------- --------
---
展开代码

其中,我们定义了 UserType、RootQuery 和 Mutation 三个类型。UserType 定义了 User 的属性,RootQuery 定义了查询类型,Mutation 定义了变更类型。

创建 Express 应用

最后,我们需要创建一个 Express 应用,将 GraphQL 添加到其中:

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

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

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

---------------- -- -- -
  ------------------- ------- -- ---- -------
---
展开代码

其中,我们使用 express-graphql 将 GraphQL 添加到 Express 中,并启动了一个监听 4000 端口的服务器。

测试 API 接口

现在,我们可以使用任何支持 GraphQL 的客户端工具来测试我们的 API 接口。下面是一个使用 fetch 发送请求的示例:

-- -------------------- ---- -------
----------------- -
  ------- -------
  -------- - --------------- ------------------ --
  ----- ----------------
    ------ -
      ----- -
        ----- -
          --
          --------
          -----
        -
      -
    -
  --
--
  --------- -- -----------
  ---------- -- -------------------
展开代码

总结

本文介绍了如何使用 Sequelize 和 GraphQL 构建 CRUD API。Sequelize 提供了丰富的 API 和严格的数据类型检查,使得开发者可以方便地操作数据库。而 GraphQL 则提供了更好的灵活性和可扩展性。通过结合使用 Sequelize 和 GraphQL,我们可以更加高效地开发 API 接口。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65712c4ad2f5e1655d9ddf03

纠错
反馈

纠错反馈