简介
resolve-eventstore-base
是一个针对事件存储的工具集合,它提供了各种事件存储所需的基本功能。该工具集合包括了 eventstore-provider.js
,该工具集合的主要功能是提供一个标准接口,用于连接到各种不同类型的事件存储。本文将详细介绍 resolve-eventstore-base
的使用方式。
安装
你可以使用 npm 来安装 resolve-eventstore-base
:
--- ------- -----------------------
快速开始
下面是一个简单的示例,它演示了如何使用 resolve-eventstore-base
创建一个事件存储,并写入一个事件:
----- ------------------ - ---------------------------------- ----- -------- ------ - ----- ---------- - ----- ------------------ --------- - ------- --------------------------- -------- - ----- ------------ ----- ----- ----- ------- --------- ------------- --------- ---------- - - -- ----- ---------------------- ------------ ------ ----------------- -- ----- ---------------- -------- - -------- --------- ------------- -------- ------ --- - -- - ------
首先,我们使用 createEventstore
创建了一个事件存储,该事件存储使用了名为 resolve-eventstore-mysql
的提供程序,并使用提供程序所需要的选项来连接到 MySQL 数据库。然后,我们使用 saveEvent
方法向事件存储中写入了一个事件。
创建事件存储
创建事件存储的步骤是:
- 使用
createEventstore
函数创建一个事件存储。 - 在
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