Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在模块中填充集合以在事件/命令中使用_Javascript_Node.js_Visual Studio Code_Discord_Discord.js - Fatal编程技术网

Javascript 如何在模块中填充集合以在事件/命令中使用

Javascript 如何在模块中填充集合以在事件/命令中使用,javascript,node.js,visual-studio-code,discord,discord.js,Javascript,Node.js,Visual Studio Code,Discord,Discord.js,我知道,要填充一个集合(如公会和频道),bot必须已经登录,也就是说,它可以在命令文件和内部事件中使用。我有一个模块,它将在我的control discord服务器中显示我的日志,我希望能够在我的事件和命令中引用这个模块 我已经尝试在事件中导入模块,以及其他有意义的选项 这是我模块中的代码 const Discord=require'Discord.js' const bot=new Discord.Client const CC='../settings/control center.json

我知道,要填充一个集合(如公会和频道),bot必须已经登录,也就是说,它可以在命令文件和内部事件中使用。我有一个模块,它将在我的control discord服务器中显示我的日志,我希望能够在我的事件和命令中引用这个模块

我已经尝试在事件中导入模块,以及其他有意义的选项

这是我模块中的代码

const Discord=require'Discord.js' const bot=new Discord.Client const CC='../settings/control center.json' const CCFile=requireCC const GUILD=bot.guilds.getCCFile.GUILD const STARTUP=bot.channels.getCCFile.STARTUP const INFO=bot.channels.getCCFile.INFO const ERRORS=bot.channels.getCCFile.ERRORS const RESTART=bot.channels.getCCFile.RESTART const EXECUTABLES=bot.channels.getCCFile.EXECUTABLES 类控制{ /** *实现控制中心日志记录 *@param{string}消息-发送到启动通道的内容 *@return{string}发送到启动通道的最终产品 */ 创业信息{ 返回启动。发送`${message}` } } module.exports=控制
我希望能够全局使用这个模块/里面的函数,这样我的代码就可以更紧凑。那么,我如何才能使此代码仅在bot登录后加载?

在您的模块代码中,您正在创建一个新的Discord客户端实例,并且从不调用登录方法。 更好的方法是在方法中传递bot对象

模块文件

应用程序文件


工作完全符合预期,解释得很好,谢谢。
const CC = '../settings/control-center.json';
const CCFile = require(CC);
const GUILD = CCFile.GUILD;
const STARTUP = CCFile.STARTUP;
const INFO = CCFile.INFO;
const ERRORS = CCFile.ERRORS;
const RESTART = CCFile.RESTART;
const EXECUTABLES = CCFile.EXECUTABLES;

class Control {

  startup(bot, message) {
    return bot.channels.get(STARTUP).send(message);
  }

}

module.exports = Control
// Use the bot here
const Discord = require('discord.js')
const bot = new Discord.Client() 
const control = require('path/to/control.js');

[...]

// to send a message when ready, try something like this
bot.on('ready', () => {
  control.startup(bot, 'bot is ready');
});

// don't forget to login
bot.login('YOUR-TOKEN-HERE');