Всем привет! Зашерстил Google, но не нашел подобного решения архитектуры телеграмм-бота написанного на библиотеке node-telegram-bot-api.
Суть в том, что 90% моего кода находиться в одном index.js файле (у меня выходит выносить только переменные со значениями и внешние функции обёртки) и когда у тебя приложение начинает переваливать за 2 тысячи строк, становится затратно свайпать верх-вниз по длиной партянке.
Проблема же заключается в том, что все команды или функции, касающиеся бота (начинаются классом bot с вложенностью любым из его методом), такие как:
bot.on('message', msg => {
const chatId = msg.chat.id
switch (msg.text) {
case kb.home.projects:
bot.sendMessage(chatId, command_text__projects, {
reply_markup: {
keyboard: keyboard.projects,
resize_keyboard: true,
one_time_keyboard: true
}
})
break
или
bot.onText(/\/start/, msg => {
const chatId = msg.chat.id
if (msg.chat.username !== 'AveCardinal' ) {
bot.sendMessage(chatId, command_text__start__error)
} else if (msg.chat.username === 'AveCardinal') {
bot.sendMessage(chatId, command_text__start_success, {
reply_markup: {
keyboard: keyboard.home,
resize_keyboard: true
}
})
}
})
привязаны к классу бот и даже если вынести создание класса bot в отдельный файл и делать require в каждый из отдельных файлов, в которых находиться бизнес-логика связанная с методами класса bot, то в итоге приложение не работает, поскольку код разбит, но не соединен в один общий файл.
Вопрос: как вынести бизнес-логику отдельного блока bot.on или любого другого метода класса bot в отдельный файл, а после соединить все блоки кода в один файл?