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

DiscordJS 入门:如何将响应逻辑拆分到独立JS文件并调用?

拆分DiscordJS代码到独立文件的方法

方法一:单独拆分响应列表

  1. 创建响应文件:在项目目录下新建responses.js文件,把响应数组导出:
// responses.js
module.exports = [
  "Response 1",
  "Response 2",
  "Response 3",
  "Response 4",
  // 后续新增响应直接在这里添加即可
];
  1. 在index.js中导入并使用:
    替换原代码里硬编码的响应数组,改用导入的内容:
// index.js
// 导入外部响应列表
const responses = require('./responses.js');

client.on("messageCreate", async (message) => {
  let args = message.content.trim().split(" ");
  if (message.author.id === "1234567890") {
    const member = await message.guild.members.fetch(message.author.id);
    const reply = responses[Math.floor(Math.random() * responses.length)];
    if (Math.random() < 0.15) {
      message.reply(`${reply}`);
    }
  }
});

方法二:把逻辑也封装成模块(更规整)

如果后续逻辑会变复杂,可以把随机回复的逻辑也拆出去:

  1. 创建回复模块文件:新建randomReply.js
// randomReply.js
const responses = [
  "Response 1",
  "Response 2",
  "Response 3",
  "Response 4",
];

// 导出生成随机回复的函数
module.exports = function getRandomReply() {
  return responses[Math.floor(Math.random() * responses.length)];
};
  1. 在index.js中调用函数:
// index.js
const getRandomReply = require('./randomReply.js');

client.on("messageCreate", async (message) => {
  let args = message.content.trim().split(" ");
  if (message.author.id === "1234567890") {
    const member = await message.guild.members.fetch(message.author.id);
    const reply = getRandomReply();
    if (Math.random() < 0.15) {
      message.reply(`${reply}`);
    }
  }
});

额外说明

  • 如果你的项目启用了ES模块(package.json中包含"type": "module"),需要把require换成import,导出用export default:
    // responses.js(ES模块格式)
    export default [
      "Response 1",
      "Response 2",
    ];
    
    // index.js(ES模块格式)
    import responses from './responses.js';
    
  • 注意文件路径要正确,./responses.js表示和index.js同目录的文件,若文件在子文件夹中,比如./data/responses.js,要写全路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 23:55:31