简介
botbuilder-storage-rethinkdb是一个使用rethinkdb作为botbuilder框架(xmpp, slack, telegram等)的存储服务的npm包。rethinkdb是一个开源分布式JSON数据库,它的数据模型基于JSON,可以使用JavaScript或Python或Ruby作为其查询语言。
在很多聊天机器人中,需要一个可靠的存储机制,以便保存会话数据等信息。这个存储应该是高可用的,有足够的扩展性,以适应许多用户。使用botbuilder-storage-rethinkdb使得rethinkdb的机制能够增强这种服务,提供一个功能强大的存储库。本篇文章将深入介绍botbuilder-storage-rethinkdb的使用方法,包括在rethinkdb中创建和配置数据表和如何在botbuilder框架中使用botbuilder-storage-rethinkdb。
前提条件
- Node.js环境
- 安装rethinkdb服务器:
在终端窗口运行以下命令,以启动rethinkdb服务,
rethinkdb
在另一个命令提示符窗口运行以下命令,将创建名为"purchases" 的数据库,
rethinkdb create-db purchases
安装
使用npm包管理器安装botbuilder-storage-rethinkdb
npm install botbuilder-storage-rethinkdb
示范
连接到rethinkdb
首先需要实例化botbuilder-storage-rethinkdb,并连接到rethinkdb服务器。
-- -------------------- ---- ------- --- ------- - ---------------------- --- ----------------- - ---------------------------------------- -- ------------------- --- ---------- - --- ------------------- ----- ------------ ----- -------- --------- ----------- --- -- ----------------------- --- --- - --- -------------------------------- ------------------ ------------
存储用户会话数据
要保存会话数据,可以使用"userData"存储属性。
// 将message.text作为userData储存 bot.dialog('/', [ function (session) { // 在此处设置用户数据 session.userData.lastMessage = session.message.text; //应答消息 session.send("你说了:" + session.message.text); }]);
存储对话数据
botbuilder框架会话管理器会自动把会话数据保存到会话存储中,所以不需要独立处理"conversationData"。举个例子:在bot建立时分享"userData",例如用户用户名或其他信息。在对话中,对话可以更新"conversationData",以防止对话中丢失了关键信息。
bot.dialog('/', [ function (session) { // 在此处设置"conversationData" session.conversationData["customerId"] = "yijun.chen"; //回应消息 session.send("你好"); }]);
存储用户私密数据
使用"privateConversationData"存储属性,可以将私密数据储存在botbuilder-storage-rethinkdb。
-- -------------------- ---- ------- --------------- - -------- --------- - -- ----------------------------------------- ------------------------------------------- - --------------------- ------ ------------------- - ---------------------- - ---
存储bot数据
可以将数据存储在"botData"中,这些数据是全局的。
-- -------------------- ---- ------- -- ------- --------------------- - ----------- - --- --------------- - -------- --------- - -- ------------------------ ------------------------------------ ------ ------------------------- - ----------------------------------- - ---
总结
通过使用botbuilder-storage-rethinkdb,我们可以轻松地将会话和会话数据存储在rethinkdb中,并在不同会话中共享数据。本文提供了一个完整的示例,在其中包括如何连接到rethinkdb和存储各种数据。但这只是开始,你可以进一步深入学习botbuilder-storage-rethinkdb文档,以利用rethinkdb的更高级功能。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60066c81ccdc64669dde4cd6