我试图调用存储在我ready.js文件中的常量musicSettings,但是似乎无法导出它。在我的ready.js文件中(此位置必须存在,因为这是我可以访问this.client的唯一位置之一)
const { Listener } = require('discord-akairo');
const { Client: Lavaqueue } = require('lavaqueue');
const { ClientID } = require('../config');
class ReadyListener extends Listener {
constructor() {
super('ready', {
emitter: 'client',
eventName: 'ready'
});
}
exec() {
process.stdout.write(`[>] Running in ${this.client.guilds.size} servers.\n`);
}
}
const musicSettings = new Lavaqueue({
userID: ClientID,
password: 'g6Z0xRLbiTHq',
hosts: {
rest: 'http://127.0.0.1:2333',
ws: 'ws://127.0.0.1:2333',
redis: { host: 'localhost' },
},
send(guildID, packet) {
this.client.ws.send(packet)
},
});
module.exports = ReadyListener;
位于play.js文件中的代码(不起作用,因为我无法从ready.js文件中导入musicSettings)
async exec(message, args) {
var channel = message.member.voiceChannel;
if (!channel) {
return message.reply('you need to be in a voice channel to play music.')
} else if (!args.video) {
return message.reply('you need to provide a link or search for a video.')
}
const song = await musicSettings.load(args.video);
const queue = musicSettings.queues.get(`${message.guild.id}`);
await queue.player.join(`${message.member.voiceChannel.id}`);
await queue.add(...song.tracks.map(s => s.track));
await queue.start();
}
}
答案 0 :(得分:1)
从musicSettings
导出ready.js
实例:
module.exports = { ReadyListener, musicSettings };
然后将其导入play.js
:
const { musicSettings } = require('./ready');
然后您就可以在musicSettings
中引用play.js
。
请注意,由于ready.js
现在正在导出两项,因此要导入ReadyListener
,您将必须使用与导入{{1 }},例如:
musicSettings
或者,如果您想一次导入两者:
const { ReadyListener } = require('./ready');