[英]Error when exporting a variable in nodejs
我想导出一个变量。 但这发生了
第一个文件
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)
为什么会给出错误?
您的mayby想要以这种方式使用module.exports
。
module.exports = {
key1: val1,
key2: val2
}
因此,您的代码module.exports.Testo = Testo; module.exports = testCommand;
module.exports.Testo = Testo; module.exports = testCommand;
可以使用这种格式,并且不会抛出错误。
您已定义此文件,我知道是test.js:
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'
}
}
// Testo is not defined because is under method run
module.exports.Testo = Testo;
module.exports = testCommand;
您现在可以更好地看到问题了,因为它已经很好地缩进了。 该模块正在加载同步,并且您将按照同步方式导出Testo,因此,将出现错误。 如果要解决此问题,则需要在“运行”方法之外定义“ var Testo”或使该模块异步。
问候
您定义Testo
的方法run
,如果你运行的方法run
Testo = 'hello'
,但你定义class testCommand
,所以Testo
是undefined
,你shold运行方式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;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.