Botkit: изменение объекта BotkitMessage во всем промежуточном программном обеспечении

Пользователь отправляет Hi there ! (Хранится в message.text) из интерфейса чат-бота; Однако ConversationPlugin's ingestМутирует промежуточное ПО message.text к значению  Hello. У меня вопрос: почему это значение не сохраняется к тому времени, когда receive промежуточное ПО работает? (см. журналы ниже) Это очень важно для моего приложения. Мне нужно убедиться, что сообщение боткита запоминает / сохраняет мои мутации на всем пути (на всем ходу)!

[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 !

Не могли бы вы помочь мне понять / решить эту проблему?

1 ответ

Очень сложно сказать, что происходит внутри вашего кода, не видя этого.

Этот код работает так, как ожидалось - промежуточное программное обеспечение приема изменяет текст, и это изменение доступно внутри промежуточного программного обеспечения приема:

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();
});


}```
Другие вопросы по тегам