Botkit:在整个中间件中突变BotkitMessage对象。

问题描述 投票:0回答:1

用户发送 Hi there ! (存于 message.text)的聊天机器人用户界面;然而, ConversationPlugin's ingest 中间件变异 message.text  价值 Hello. 我的问题是:为什么这个值没有保留到 receive  中间件运行?(参见下面的日志)这种行为对我的应用来说是至关重要的。我需要确保botkit的信息能一直记住我的突变(在整个回合中)。

[2020-05-16T11:23:47.130] [DEBUG] - [ConversationPlugin.ingest()] before triggering the event 'userMessage' => message.text ==> Hi there ! [2020-05-16T11:23:47.132] [DEBUG] - [ConversationPlugin.ingest()] after triggering the event 'userMessage' => message.text ==> Hello [2020-05-16T11:23:47.142] [DEBUG] - [ConversationPlugin.receive()] message.text => Hi there ! [2020-05-16T11:23:47.143] [DEBUG] - [ConversationPlugin.receive()] The message text is => Hi there !

您能帮我解决这个问题吗?

bots middleware chatbot botkit ingest
1个回答
0
投票

在没有看到你的代码之前,很难说你的代码内部发生了什么。

这段代码的工作原理和预期的一样--摄取中间件改变了文本,而这种改变在接收中间件中是可用的。

module.exports = function(controller) {

  controller.middleware.ingest.use((bot, message, next) => {
    console.log('INGEST', message.text);
    message.text = 'INGESTING ' + message.text;
    next();
  });


controller.middleware.receive.use((bot, message, next) => {
  console.log('RECEIVED', message.text);
  next();
});


}```
© www.soinside.com 2019 - 2024. All rights reserved.