You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何群组有成员加入或退出时Telegram Bot会停止运行?

问题诱因
  • 你当前监听的message事件会响应所有类型的消息推送,包括群成员加入/退出的系统服务消息,这类消息没有text字段,所以msg.text值为undefined,直接调用match方法就会抛出类型错误。
  • 你给事件回调声明了async关键字,回调内抛出的错误会转为被拒绝的Promise,你没有配置catch逻辑处理这个异常,最终触发Node.js的未处理Promise rejection告警,导致程序停止运行。
修复方案
  1. 执行业务逻辑前先判断msg.text是否存在,避免对undefined调用方法
  2. 给async回调增加try/catch块,捕获所有潜在异常,避免程序意外退出

修复后的代码示例:

const TelegramBot = require('node-telegram-bot-api');

const token = '1928095766:AAGf5aU7E1_FAM_fWzQs3SSGy-1AJS0DjcY';

const bot = new TelegramBot(token, { polling: true });

bot.on('message', async msg => {
  try {
    // 非文本类消息直接跳过处理
    if (!msg.text) return
    const reg = /\d\d\-\d\d$/;
    if (msg.text.match(reg)) {
      await bot.sendMessage(msg.chat.id, 'Gh')
    }
  } catch (err) {
    // 可自行补充错误日志上报逻辑
    console.error('消息处理异常', err)
  }
})

内容的提问来源于stack exchange,提问作者Roman Savka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 13:24:04