npm 包 drandx-dynogels 使用教程

阅读时长 14 分钟读完

简介

drandx-dynogels 是一个面向 Node.js 应用程序的 Amazon DynamoDB ORM,它使用 AWS SDK 以及自己的查询语言提供了一层抽象来访问 DynamoDB。

在本篇文章中,我会详细介绍 drandx-dynogels 的使用,包括安装、配置以及使用方法,还会带着读者一起实现一个简单的示例。

安装

安装 drandx-dynogels 只需要一条命令:

npm install drandx-dynogels

配置

我们先来看看如何配置 drandx-dynogels 来访问 DynamoDB。

在这里,我们通过 AWS.config.update() 方法来配置 AWS SDK 的认证信息以及访问区域。如果你还没有 AWS 账户,可以到 AWS 官方网站 注册一个账户。

为了方便访问,我们可以设置全局访问区域:

这样,我们就可以方便地在项目中访问 DynamoDB 了。

使用

一旦我们完成了配置,我们就可以使用 drandx-dynogels 来访问 DynamoDB。接下来,我会以代码示例的方式带领读者了解 drandx-dynogels 的使用方法。

创建表

首先,我们需要创建一个表。在 drandx-dynogels 中,我们可以通过定义一个 Model,然后使用 Model.createTable() 方法来创建一个表。

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

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

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

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

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

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

在这里,我们定义了一个名为 AccountModel,它有一个 hashKeyemail,一个 rangeKeyname,以及一个名为 IdxEmailName 的全局索引。

除了基本的键之外,我们还可以定义一个复杂的架构,并且可以使用 dynogels 提供的类型描述。

最后,我们通过调用 Model.createTable() 方法来创建一个名为 accounts-test 的表。

插入数据

当我们创建完表后,就可以开始插入一些数据了。在 drandx-dynogels 中,我们可以使用 Model.create() 方法来插入数据。

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

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

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

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

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

在这里,我们先定义了一个名为 AccountModel,然后创建了一个包含账户信息的对象,并通过 Model.create() 方法来插入数据。

查询数据

在 drandx-dynogels 中,我们可以使用类似 SQL 的查询语句来查询数据。例如,我们可以使用 Model.get() 方法来获取一条记录。

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

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

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

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

在这里,我们调用了 Account.get() 方法,传入的参数是 emailname,drandx-dynogels 会自动帮我们拼接条件并查询数据。

更新数据

当我们需要更新数据时,我们可以使用 Model.update() 方法。

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

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

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

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

在这里,我们使用 Model.update() 方法来更新名为 John Doe 的账户的年龄为 31

删除数据

当我们需要删除数据时,我们可以使用 Model.destroy() 方法。

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

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

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

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

在这里,我们使用 Model.destroy() 方法来删除名为 John Doe 的账户。

示例

最后,我会带着读者一起实现一个简单的 Web 应用,该应用使用 drandx-dynogels 来访问 DynamoDB,以实现用户注册、登录以及注销功能。

创建表

首先,我们需要创建一个名为 users-test 的表,其中 username 作为 hashKeypassword 作为 rangeKey

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

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

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

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

注册用户

在这个示例中,我们使用 Express.js 作为 Web 应用框架。下面是注册用户的代码:

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

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

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

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

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

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

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

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

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

在这里,我们定义了一个 /register 的路由,并接收 usernamepassword 作为参数。然后,我们创建一个包含账户信息的对象,并通过 Model.create() 方法来插入数据。

登录用户

接下来,我们需要实现登录用户的功能。

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

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

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

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

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

在这里,我们定义了一个 /login 的路由,并接收 usernamepassword 作为参数。然后,我们使用 Model.get() 方法来获取用户信息。如果获取不到,我们返回一个错误信息;否则,我们返回登录成功的信息。

注销用户

最后,我们需要实现注销用户的功能。

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

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

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

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

在这里,我们定义了一个 /logout 的路由,并接收 usernamepassword 作为参数。然后,我们使用 Model.destroy() 方法来注销账户。

完成了这三个功能后,我们就实现了一个使用 drandx-dynogels 访问 DynamoDB 的 Web 应用程序。

总结

在本篇文章中,我们介绍了如何使用 npm 包 drandx-dynogels 访问 Amazon DynamoDB 数据库。我们介绍了 drandx-dynogels 的安装、配置以及使用方法,并通过一个代码示例带领读者实现了一个简单的 Web 应用程序。

通过学习文章中介绍的内容,读者可以更深入地了解 drandx-dynogels 的使用方法,以及如何在 Node.js 应用程序中访问 Amazon DynamoDB。

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

纠错
反馈