我想导出一个变量。但这发生了
第一个文件
const commando = require('discord.js-commando');
const ytdl = require('ytdl-core');
class testCommand extends commando.Command {
constructor(client) {
super(client,{
name: 'test',
group: 'music',
memberName: 'test',
description: 'test',
});
}
async run(message, args) {
var Testo = 'hello'
}
}
module.exports.Testo = Testo;
module.exports = testCommand;
第二档
const commando = require('discord.js-commando');
const ytdl = require('ytdl-core');
var Testotest = require('./test.js')
class pauseCommand extends commando.Command {
constructor(client) {
super(client,{
name: 'pause',
group: 'music',
memberName: 'pause',
description: 'Pause music',
});
}
async run(message, args) {
message.channel.send(Testotest.Testo())
}
}
module.exports = pauseCommand;
错误
ReferenceError: Testo is not defined
at Object.<anonymous> (/Users/andrew/Desktop/NullBot_/commands/music/test.js:27:24)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/Users/andrew/Desktop/NullBot_/commands/music/pause.js:3:17)
at Module._compile (module.js:652:30)
为什么会给出错误?
最佳答案
您在方法Testo
中定义run
如果运行方法run
Testo = 'hello'
,但是定义了class testCommand
,则Testo
是undefined
,则将运行方法run
保留一次以定义Testo
。
此代码
module.exports.Testo = Testo;
设置
module.exports = {Testo: Testo}
但是你用
module.exports = testCommand;
设置
module.exports = testCommand
呼叫时
Testotest.Testo
是testCommand.Testo
(未定义)在第一个文件中更改代码:
module.exports = testCommand;
module.exports.Testo = Testo;