Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   структура файлов TelegramBot & express (https://javascript.ru/forum/node-js-io-js/83023-struktura-fajjlov-telegrambot-express.html)

od0201 29.08.2021 16:04

структура файлов 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, а я хочу вынести его за пределы этого файла, как это правильно организовывается?

ksa 29.08.2021 18:56

Цитата:

Сообщение от 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)
})

od0201 30.08.2021 15:39

Была цель убрать лишний код из 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)
    })
  }
}



Часовой пояс GMT +3, время: 04:08.