Node.js (telegraf). Непонятная ошибка в сценарии

181
04 февраля 2020, 00:30

Выдает ошибку когда нажать Button ("USD-UAH») после нее Button ("EUR-UAH») показывает ошибку

 TypeError: Cannot read property 'text' of undefined
      at ctx (F:\project\telegram_bot\app.js:111:45)
      at compose (F:\project\telegram_bot\node_modules\telegraf\scenes\wizard\index.js:45:39)
      at execute (F:\project\telegram_bot\node_modules\telegraf\composer.js:352:13)
      at Promise.resolve.handler (F:\project\telegram_bot\node_modules\telegraf\composer.js:352:49)
      at F:\project\telegram_bot\node_modules\telegraf\composer.js:120:56
      at execute (F:\project\telegram_bot\node_modules\telegraf\composer.js:352:13)
      at Promise.resolve.handler (F:\project\telegram_bot\node_modules\telegraf\composer.js:352:49)
      at compose (F:\project\telegram_bot\node_modules\telegraf\scenes\wizard\index.js:37:16)
      at execute (F:\project\telegram_bot\node_modules\telegraf\composer.js:352:13)
      at F:\project\telegram_bot\node_modules\telegraf\composer.js:337:14
Failed to process updates. TypeError: Cannot read property 'text' of undefined
    at ctx (F:\project\telegram_bot\app.js:111:45)
    at compose (F:\project\telegram_bot\node_modules\telegraf\scenes\wizard\index.js:45:39)
    at execute (F:\project\telegram_bot\node_modules\telegraf\composer.js:352:13)
    at Promise.resolve.handler (F:\project\telegram_bot\node_modules\telegraf\composer.js:352:49)
    at F:\project\telegram_bot\node_modules\telegraf\composer.js:120:56
    at execute (F:\project\telegram_bot\node_modules\telegraf\composer.js:352:13)
    at Promise.resolve.handler (F:\project\telegram_bot\node_modules\telegraf\composer.js:352:49)
    at compose (F:\project\telegram_bot\node_modules\telegraf\scenes\wizard\index.js:37:16)
    at execute (F:\project\telegram_bot\node_modules\telegraf\composer.js:352:13)
    at F:\project\telegram_bot\node_modules\telegraf\composer.js:337:14

мои файлы: app.js

const Telegraf = require("telegraf");
const token = "TOKEN";
const session = require("telegraf/session");
const Stage = require("telegraf/stage");
const Markup = require("telegraf/markup");
const WizardScene = require("telegraf/scenes/wizard");
const Composer = require("telegraf/composer");
const bot = new Telegraf(token);
const getApi = require("./api");
bot.start(ctx => {
  ctx.reply(
    `Hello ${ctx.from.first_name}. Сhoose one of the commands`,
    Markup.inlineKeyboard([
      Markup.callbackButton("Curse", "curse"),
      Markup.callbackButton("Convert", "convert")
    ]).extra()
  );
});
bot.command("help", ctx => ctx.reply("
Answer 1

Дело в том, что ctx.message есть только у текстовых сообщений, для экшенов вроде бы используется ctx.callbackQuery. Чтобы узнать тип полученного сообщения можно посмотреть ctx.updateType. Если нужно получить "контент сообщения, каким бы оно ни было", то можно ctx[ctx.updateType].

А вообще вот документация, квадратными скобками обозначены опциональные поля.

READ ALSO
Chart Js Число и день недели

Chart Js Число и день недели

Нужно сделать так

166
Как добраться до значения в строке JSON JQuery

Как добраться до значения в строке JSON JQuery

У меня есть переменная itemОна содержит вот такой комплект котировок:

144
Прощу помощи по jquery touch

Прощу помощи по jquery touch

Как сделать, чтобы контент не увеличивался на странице при масштабировании, но и работал TapИспользую jquery toush библиотеку

186