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