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

Node.js Discord SSH服务器管理机器人代码精简优化问题

实现方案

三数组匹配方案(符合你的需求)

核心逻辑为通过用户输入的命令匹配命令数组的索引,再通过同一索引直接获取对应SSH指令和回复内容,无需多分支判断。

步骤1:定义三个一一对应的数组

三个数组相同位置的元素严格对应,第N个命令对应第N个SSH指令和第N个回复模板:

// 按索引顺序一一对应
const massage = ['重启MC服务', '查看服务器负载', '清理磁盘缓存', /* 剩余12条命令依次补充 */];
const sshcoms = ['systemctl restart mc.service', 'uptime && free -h', 'sync && echo 3 > /proc/sys/vm/drop_caches', /* 对应命令的SSH执行指令依次补充 */];
const rply = ['已发起MC服务重启请求,10秒左右即可完成', '当前服务器运行状态如下:\n${result}', '磁盘缓存清理完成', /* 对应回复模板依次补充,支持插入执行结果变量 */];

步骤2:单次匹配逻辑替换原有多if分支

假设用户输入的命令存放在userInput变量中,原有15条if判断直接替换为以下逻辑:

// 匹配命令对应的索引
const cmdIndex = massage.findIndex(cmd => cmd === userInput.trim());
// 无匹配命令的兜底处理
if (cmdIndex === -1) {
  message.reply('无效指令,请输入正确的操作命令');
  return;
}
// 直接获取对应SSH指令和回复模板
const execSshCmd = sshcoms[cmdIndex];
const replyTemplate = rply[cmdIndex];

// 后续执行SSH逻辑示例(以ssh2库为例)
ssh.exec(execSshCmd, (err, stream) => {
  if (err) throw err;
  let execResult = '';
  stream.on('data', data => execResult += data.toString())
  .on('close', () => {
    // 替换回复模板中的执行结果变量
    const finalReply = replyTemplate.replace('${result}', execResult);
    message.reply(finalReply);
  });
});

注意事项

  • 新增/删除/调整命令时,三个数组必须同步操作相同索引的内容,避免出现错配
  • 如需支持模糊匹配,可将findIndex内的全等判断改为cmd.includes(userInput.trim())或正则匹配
  • 变量名massage大概率是message的拼写笔误,可根据实际需求调整

优化方案(推荐,避免数组错配问题)

三数组配置容易出现顺序错配的维护问题,推荐用单对象数组存储所有命令配置,每个命令的触发词、SSH指令、回复内容绑定存储,不会出现匹配错误:

// 所有命令配置统一存储,新增命令直接追加对象即可
const cmdConfigs = [
  {
    trigger: '重启MC服务',
    sshCmd: 'systemctl restart mc.service',
    reply: '已发起MC服务重启请求,10秒左右即可完成'
  },
  {
    trigger: '查看服务器负载',
    sshCmd: 'uptime && free -h',
    reply: '当前服务器运行状态如下:\n${result}'
  }
  // 剩余13条命令依次追加对象即可
];

// 匹配逻辑
const targetCmd = cmdConfigs.find(item => item.trigger === userInput.trim());
if (!targetCmd) {
  message.reply('无效指令,请输入正确的操作命令');
  return;
}
// 直接取出对应配置执行即可
const { sshCmd, reply } = targetCmd;
// 后续SSH执行逻辑和上述方案一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 20:48:01