我正在用node-telegram-bot-api制作电报机器人,一切都很好,直到命令列表变得很长。在初始化 bot 的单个 .js 文件中提供许多命令是不舒服的。
我了解module.exports的一件事,使用它我可以将服务功能移动到不同的文件,但这仍然不是我想要的。
当您构建 html 页面(基本)时,您可以通过以下方式添加您的 javascript 文件标签,这就是你如何在页面上加载很少的脚本作为一件大事。当您使用 PHP 时,您可以使用require或include将其他脚本插入到主脚本中。最后 Express.js 允许制作外部路由器模块,并在主脚本中使用它,就像expressApp.use(myRouterModule)
.
这就是我试图找到的方法。制作一些结构,当按任何类别分组的少数命令将被放置到不同的 .js 文件中并使用类似mybot.useCommands(CommandGroup1,CommandGroup2)
即CommandGroup1.js将包含:
bot.onText(/\/start/,function(msg){...})
bot.onText(/\/echo/,function(msg){...})
另一个TestGroup.js将包含
bot.onText(/\/test1/,function(msg){...})
bot.onText(/\/AnotherTest/,function(msg){...})
并且主app.js将使用这两个文件,其中包含事件侦听器
var bot = new TelegramBot(token, { polling: true });
includeHere('./CommandGroup1.js')
includeHere('./TestGroup.js')
我检查了 node-telegram-bot-api 的 API,但没有找到类似的东西,但是
- 可能是我的搜索不正确(关键字不正确,对描述的误解)
- 可能是 NodeJS 运行时允许 JavaScript 包含外部 .js 文件作为代码的一部分,但不能作为变量的值
PS:是的,我是 NodeJS 的新手,我知道这个问题可能听起来很愚蠢。是的,我只知道 javascript 的基础知识。但是我不知道怎么做,也不确定我的问题是否正确,所以感谢所有在需要时帮助纠正的人。