Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.08.2021, 16:04
Кандидат Javascript-наук
Отправить личное сообщение для od0201 Посмотреть профиль Найти все сообщения от od0201
 
Регистрация: 07.05.2020
Сообщений: 108

структура файлов TelegramBot & express
всем привет
есть сайт на nodejs, здесь же находится API
хочу к данному коду прикрутить telegram bot
/utils/telegramBot.js
Код:
const TelegramBot = require('node-telegram-bot-api')
const telegramBot =new TelegramBot('xxx',{polling:true})
module.exports = telegramBot
index.js
Код:
const bot = require('./utils/telegramBot')
bot.onText(/\/a(\d)/,(msg,[sourse, match])=>{
  console.log(msg.chat.id,match)
})
"слушатель" находиться в index.js, а я хочу вынести его за пределы этого файла, как это правильно организовывается?
Ответить с цитированием
  #2 (permalink)  
Старый 29.08.2021, 18:56
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от od0201
"слушатель" находиться в index.js, а я хочу вынести его за пределы этого файла, как это правильно организовывается?
Нужно чтобы слушатель появлялся в нужное время и существовал столько, сколько нужно.
Если он должен появиться при старте программы и существовать все время ее работы - можно оставить как есть у тебя.
Можно из модуля возвращать не telegramBot, а собственно слушателя. И пока будет жива ссылка на него - все будет работать.

Либо использовать пресловутый global. Запихать слушателя прямо в него.

/utils/telegramBot.js
Код:
const TelegramBot = require('node-telegram-bot-api')
global.bot = new TelegramBot('xxx',{polling:true})
global.bot.onText(/\/a(\d)/,(msg,[sourse, match])=>{
  console.log(msg.chat.id,match)
})
Ответить с цитированием
  #3 (permalink)  
Старый 30.08.2021, 15:39
Кандидат Javascript-наук
Отправить личное сообщение для od0201 Посмотреть профиль Найти все сообщения от od0201
 
Регистрация: 07.05.2020
Сообщений: 108

Была цель убрать лишний код из index.js, и хотелось сделать это правильно. Знаний не зватает. Сделал как мог. Если что не так, буду рад комментариям
index.js
Код:
const listenersBot = require('./telegram/listeners')
listenersBot.start()
telegramBot.js
Код:
const TelegramBot = require('node-telegram-bot-api')
const bot =new TelegramBot('xxx',{polling:true})
module.exports = bott
listeners.js
Код:
const bot =require('../utils/telegramBot')
module.exports={
  start(){
    bot.onText(/\/a(\d)/,(msg,[sourse, match])=>{
      console.log(msg.chat.id,match)
    })
  }
}
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скачивание файлов с сохранением структуры папок SanGorych Opera, Safari и др. 0 13.06.2021 21:29
Почтовый плагин, как добавить отправку файлов файлов. Mikael86 Javascript под браузер 2 06.05.2021 16:47
Как избежать ошибки по ограничению открытых файлов? Tipylja Node.JS 3 17.08.2018 19:43
Чтение и вывод данных из нескольких файлов Nikc174 Элементы интерфейса 8 15.06.2018 15:54
ошибка при вызове из консоли глобального модуля express в node.js в windows 8.1 jazznet AJAX и COMET 1 16.06.2015 10:30