在 Botkit 框架中,bot 的状态信息(例如用户数据、对话历史记录等)通常是存储在 MongoDB 或 Redis 等外部服务中。对于一些企业和机构而言,基于安全和遵从性等考虑,这些服务可能不可用,无法使用。CouchDB 是一个开源、面向文档的数据库,也是一种存储 Botkit 状态信息的替代方案,可以在私有云环境中使用。同时,我们为 Botkit 设计了 botkit-storage-couchdb 的 npm 包,以方便开发人员使用 CouchDB。
安装
在安装 botkit-storage-couchdb 之前,您需要首先安装 Botkit ,Botkit 是构建机器人应用程序的工具包,支持包括 Slack、Facebook Messenger、Twilio 等平台,详情请参见 Botkit 官网 。您还需要拥有一个 CouchDB 实例并安装 curl 命令,以便在安装时配置适当的安全凭据。
安装 botkit-storage-couchdb 命令如下:
npm install --save botkit-storage-couchdb
配置
botkit-storage-couchdb 的配置信息可以通过 Botkit
构造函数中 options.storage 配置信息进行设置,例如:
-- -------------------- ---- ------- ----- ------ - ------------------ ----- -------------------- - ---------------------------------- ----- ---------- - ----------------- -------- --------------------- - ---- ------------------------------------- ----- ------------ ----- - ----- - --------- ----------- --------- ---------- - - - - ---
其中,url
参数为 CouchDB 实例的连接地址,包含访问安全凭证。name
参数为数据库名称,opts
参数为配置选项,如设置数据库访问的用户名密码等。
API
通过 botkit-storage-couchdb,我们可以使用一系列 API 在 CouchDB 中进行数据的 CRUD(增删改查)操作。
get(controller, id, callback)
从 CouchDB 数据库中按 id 获取对象。
controller.storage.users.get('someuser', function(err, user) { // do something... });
save(controller, data, callback)
将对象保存到 CouchDB 数据库中,注意 data
对象最少需要一个 id
属性。
controller.storage.users.save({id: 'someuser', foo: 'bar'}, function(err) { // do something... });
delete(controller, id, callback)
从 CouchDB 数据库中按 id 删除对象。
controller.storage.users.delete('someuser', function(err) { // do something... });
all(controller, callback)
从 CouchDB 数据库中获取所有对象。
controller.storage.users.all(function(err, users) { // do something... });
create(controller, fields, callback)
创建新对象,且对象的 id
属性由 CouchDB 自动生成。
controller.storage.users.create({foo: 'bar'}, function(err, user) { // do something... });
update(controller, id, fields, callback)
更新对象字段。
controller.storage.users.update('someuser', {foo: 'bar'}, function(err) { // do something... });
示例
使用 botkit-storage-couchdb 进行 CRUD 操作的示例代码如下:
-- -------------------- ---- ------- ----- ------ - ------------------ ----- -------------------- - ---------------------------------- ----- ---------- - ----------------- -------- --------------------- - ---- ------------------------------------- ----- ------------ ----- - ----- - --------- ----------- --------- ---------- - - - - --- --------------------------- -------------------------------- ------------- -------- - -- ------ ------ ------------------------------------- ------- ------------- ----- - -- --- --- ------- ------------------------------------------ ------ - --------- - -- ------ - --------------- - -- ------ ------ ---------------------------------------- ----- ------- ------------- - -- --- ------ -- -- ------------------------------------- ------------- ----- - ------------------ -- ------ ------ -- -- ---------------------------------------- ------------- - -- --- --- ------- ------------------------------------------ ------ - --------- - -- ------ - --------------- - --- --- --- --- --- --- ---
总结
本文介绍了如何使用 botkit-storage-couchdb 连接 Botkit 和 CouchDB,并演示了如何使用 botkit-storage-couchdb 进行数据的 CRUD 操作。botkit-storage-couchdb 支持多种操作,可以帮助开发人员利用 CouchDB 保存和管理 Botkit 中的状态信息。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60056c9681e8991b448e6087