npm 包 resolve-eventstore-base 使用教程

阅读时长 5 分钟读完

简介

resolve-eventstore-base 是一个针对事件存储的工具集合,它提供了各种事件存储所需的基本功能。该工具集合包括了 eventstore-provider.js,该工具集合的主要功能是提供一个标准接口,用于连接到各种不同类型的事件存储。本文将详细介绍 resolve-eventstore-base 的使用方式。

安装

你可以使用 npm 来安装 resolve-eventstore-base

快速开始

下面是一个简单的示例,它演示了如何使用 resolve-eventstore-base 创建一个事件存储,并写入一个事件:

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

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

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

------

首先,我们使用 createEventstore 创建了一个事件存储,该事件存储使用了名为 resolve-eventstore-mysql 的提供程序,并使用提供程序所需要的选项来连接到 MySQL 数据库。然后,我们使用 saveEvent 方法向事件存储中写入了一个事件。

创建事件存储

创建事件存储的步骤是:

  1. 使用 createEventstore 函数创建一个事件存储。
  2. provider 选项中指定提供程序的类型和选项。

下面是一个示例,它演示了如何创建一个使用 resolve-eventstore-mongo 提供程序的事件存储:

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

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

------

事件存储的 API

使用 resolve-eventstore-base 创建的事件存储包含了以下方法:

saveEvent(event: Event): Promise<void>

将一个事件写入事件存储中。

loadEventsByAggregateIds(aggregateIds: string[], minVersion?: number, initial?: boolean, batchSize?: number): Promise<Array<Event>>

从事件存储中加载指定的聚合 ID 的所有事件。

loadEventsByTypes(eventTypes: string[], minVersion?: number, initial?: boolean, batchSize?: number): Promise<Array<Event>>

从事件存储中加载指定类型的所有事件。

loadEventsByTimestamp(timestamp: string, minVersion?: number, initial?: boolean, batchSize?: number): Promise<Array<Event>>

从事件存储中加载指定时间戳后的所有事件。

loadEventsByCursor(cursor: string, batchSize?: number): Promise<{events: Array<Event>, cursor?: string}>

从事件存储中使用一个游标加载指定数量的事件。

getLatestEvent(aggregateIds?: Array<string>): Promise<Event | null>

获取指定聚合 ID 的最新事件。

deleteEvents(aggregateIds: Array<string>, inclusive?: boolean): Promise<void>

删除指定聚合 ID 的所有事件。如果 inclusive 参数为 true,则删除指定聚合 ID 的最新事件。

dispose(): Promise<void>

释放资源。

结语

在本文中,我们介绍了 resolve-eventstore-base 这个 npm 包的使用方式,以及如何使用它来连接到事件存储、写入事件、读取事件、删除事件等。使用 resolve-eventstore-base,你可以方便地对事件存储进行操作,从而快速地构建出你的应用程序。

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

纠错
反馈