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

JS聊天机器人翻译回复返回[object Object]问题排查

故障原因

返回[object Object]是因为@iamtraction/google-translate执行后返回的是结构化对象,包含翻译结果、源语言置信度、检测到的源语言等多个字段,并非直接返回翻译后的字符串。直接把对象插入模板字符串时,JS会自动调用对象的toString()方法,默认就会输出[object Object]。

你现有代码还有三个隐性bug:

  • 第一次把用户消息翻译成英文时,同样直接传入了翻译返回的完整对象,没有提取实际文本,会导致聊天接口收到的请求参数异常
  • message.channel.stopTyping()写在fetch请求外层,网络请求还没返回结果就会提前停止输入状态,交互体验不符合预期
  • 缺少异常捕获逻辑,一旦接口请求或翻译报错,会一直卡在正在输入的状态,也不会给用户任何反馈
修复后完整代码
// 依赖引入移到事件监听外侧,避免每次收到消息都重复加载模块
const translate = require("@iamtraction/google-translate");

client.on("message", async message => {
  if (message.channel.name == "chatbot") /*name channel*/ {
    if (message.author.bot) return;
    message.content = message.content.replace(/@(everyone)/gi, "everyone").replace(/@(here)/gi, "here");

    if (message.content.includes(`@`)) {
      return message.channel.send(`**❌ Please dont mention anyone**`);
    }

    message.channel.startTyping();
    if (!message.content) {
      message.channel.stopTyping();
      return
    }

    // 翻译用户消息为英文,取.text字段拿到实际翻译文本
    const userTransRes = await translate(message.content, {
      to: 'en'
    });
    const userEnText = userTransRes.text;

    fetch(`https://api.affiliateplus.xyz/api/chatbot?message=${encodeURIComponent(userEnText)}&botname=${client.user.username}&ownername=DEVELOPER_NAME`)
      .then(res => res.json())
      .then(async data => {
        // 翻译机器人返回内容为葡萄牙语,同样取.text字段
        const botPtRes = await translate(data.message, {
          to: 'pt'
        });
        const botPtText = botPtRes.text;
        message.inlineReply(botPtText);
      })
      .catch(err => {
        console.error('聊天请求处理失败:', err);
        message.inlineReply("当前服务暂不可用,请稍后再试");
      })
      .finally(() => {
        // 所有逻辑处理完成后再停止输入状态
        message.channel.stopTyping();
      });
  }
});
核心修改点
  • 所有翻译接口调用后,统一通过返回对象的.text属性获取实际翻译后的字符串,禁止直接传入完整响应对象
  • 调整输入状态停止逻辑的位置,放在请求的finally回调中,无论请求成功、失败都会正确收尾
  • 补充错误捕获逻辑,避免异常情况下机器人无响应
  • 把依赖加载移到事件外层,减少不必要的性能开销

内容的提问来源于stack exchange,提问作者Kauã4op

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 01:54:34