简介
emitter-rethinkdb 是一个让 RethinkDB 实时更改可观察的包装器,可通过 npm 包管理器进行安装。它与 RethinkDB 的 Node.js 客户端紧密集成,提供异步模型,即时反应和方便的 API。本文将介绍如何使用 emitter-rethinkdb。
安装
通过 npm 安装包:
--- ------- -----------------
使用
在 Node.js 应用程序中,使用 require
导入模块:
----- ------------ - ------------------ ----- - - --------------------------- ----- ---------------- - ------------------------------------------ ---
在此示例中,我们导入了三个模块:
- Node.js 公认的 EventEmitter 类,通过
require('events')
获取。 - RethinkDB 的 Node.js 客户端,通过
require('rethinkdbdash')()
获取。 - emitter-rethinkdb 包,通过
require('emitter-rethinkdb')(EventEmitter, r)
获取。
注:以上示例使用的是 rethinkdbdash,因此您需要安装它:
--- ------- -------------
API
EmitterRethinkDB 提供了一个类使您可以为 RethinkDB 查询添加事件监听器。 这个类继承 EventEmitter 类,可用于注册自己的 events。
constructor
创建一个新的 EmitterRethinkDB 实例。
--- ---------------------- --------
参数:
conn
Object: 已经连接到的 RethinkDB 连接对象(必需)。options
Object: 包含以下属性:debug
Boolean: 是否打印更改事件的调试信息,默认为false
maxListeners
Number: EventEmitter 的maxListeners
,默认为10
on
添加一个事件回调。
----------------- ---------
参数:
query
Object: RethinkDB 查询对象(必需)。callback
Function: 当查询结果发生变化时触发的回调函数(必需)。
查询必须是特殊的查询类型(即 ChangeEvent
或 ResultStream
),可以从 RethinkDB 包中获取。要更改查询,请在新的查询操作中使用与原始查询相同的条件。
例:
----- ----- - --------------------------- ----------------- ----- ------- -- - -- ----- - ----------------- ------- - -------------------- ---
off
删除一个事件回调。
------------------ ---------
参数:
query
Object: RethinkDB 查询对象(必需)。callback
Function: 要删除的回调函数(必需)。
例:
------------------ ----------
offQuery
删除指定查询所有事件回调。
-----------------------
参数:
query
Object: 要删除的 RethinkDB 查询对象(必需)。
例:
------------------------
offAll
删除所有事件回调。
----------------
例:
-----------------
close
关闭 RethinkDB 连接。
---------------
例:
----------------
EventEmitter API
EmitterRethinkDB 还继承了 EventEmitter 类的所有 API。例如,您可以使用 emitter.setMaxListeners(n)
设置事件监听器的最大数量。
示例
下面的例子展示了如何使用 emitter-rethinkdb 读取并监听表中的更改:
----- ------------ - ------------------ ----- - - --------------------------- ----- ---------------- - ------------------------------------------ --- ----- ----- - --------------------------- ----- ------- - --- ------------------- - ------ ---- --- ----------------- ----- ------- -- - -- ----- - ----------------- ------- - -------------------- --- ------------- -- - ---------------- -- ------
该示例创建了一个新的查询,用于在 users
表中寻找更改。然后,它使用 EmitterRethinkDB 类创建了一个新的 emitter 实例,该实例在每次更改时触发回调。 在这种情况下,只是打印更改内容。最后,setTimeout 函数用于等待三秒钟,然后通过调用 emitter.close()
来关闭 RethinkDB 连接。
结论
emitter-rethinkdb 提供了一个有用的工具,可以方便地监听 RethinkDB 查询结果的实时更改。 随着对实时数据的需求不断增长,此功能变得越来越重要,在任何需要实时数据的应用程序中使用此包将极为有用。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/60066e1ca563576b7b1ecc49