Node.js module.exports找不到模块
我想为机器人制作一个帮助命令,显示特定公会的前缀。这是我的Node.js module.exports找不到模块,node.js,discord.js,Node.js,Discord.js,我想为机器人制作一个帮助命令,显示特定公会的前缀。这是我的help.js文件:- const Discord = require('discord.js'); module.exports = { name: 'help', description: 'Neptune Premium Commands', execute(client, message, args){ const { guildPrefix } = require('../../main
help.js
文件:-
const Discord = require('discord.js');
module.exports = {
name: 'help',
description: 'Neptune Premium Commands',
execute(client, message, args){
const { guildPrefix } = require('../../main.js');
const embed = new Discord.MessageEmbed()
.setAuthor(`Prefix : ${guildPrefix}`, message.author.displayAvatarURL( {dynamic: true} ))
.setDescription(`Neptune Premium Commands List.`)
.addFields(
{name: `moderation`, value: '`kick` `ban` `lock` `unlock` `purge` `warn` `delwarn` `mute` `unmute`'},
{name: `utility`, value: '`prefix` `timedif` `greet` `userinfo` `serverinfo` `snipe`'},
{name: `misc`, value: '`help` `support` `vote` `invite`'}
)
.setFooter(message.guild.name, message.guild.iconURL( {dynamic: true} ))
message.channel.send(embed)
}
}
const Discord = require('discord.js');
const client = new Discord.Client();
const fs = require('fs');
const config = require('./config.json');
const prefix = require('discord-prefix');
const defaultPrefix = config.prefix;
// .. ignoring some part of the code ...
client.on('message', message =>{
// prefix db part
if (!message.guild) return;
let guildPrefix = prefix.getPrefix(message.guild.id);
if (!guildPrefix) guildPrefix = defaultPrefix;
if(message.content === '<@!849854849351942144>'){
message.channel.send(`My Prefix is \`${guildPrefix}\`. Use \`${guildPrefix}help\` for my commands!`)
}
if(message.channel.type === 'dm') return;
// discord.js command handler
if(!message.content.startsWith(guildPrefix) || message.author.bot) return;
const args = message.content.slice(guildPrefix.length).split(/ +/);
const cmd = args.shift().toLowerCase();
const command = client.commands.get(cmd) || client.commands.find(command => command.aliases && command.aliases.includes(cmd));
// ...
使用$help
后,前缀显示为未定义
这是我的main.js
文件:-
const Discord = require('discord.js');
module.exports = {
name: 'help',
description: 'Neptune Premium Commands',
execute(client, message, args){
const { guildPrefix } = require('../../main.js');
const embed = new Discord.MessageEmbed()
.setAuthor(`Prefix : ${guildPrefix}`, message.author.displayAvatarURL( {dynamic: true} ))
.setDescription(`Neptune Premium Commands List.`)
.addFields(
{name: `moderation`, value: '`kick` `ban` `lock` `unlock` `purge` `warn` `delwarn` `mute` `unmute`'},
{name: `utility`, value: '`prefix` `timedif` `greet` `userinfo` `serverinfo` `snipe`'},
{name: `misc`, value: '`help` `support` `vote` `invite`'}
)
.setFooter(message.guild.name, message.guild.iconURL( {dynamic: true} ))
message.channel.send(embed)
}
}
const Discord = require('discord.js');
const client = new Discord.Client();
const fs = require('fs');
const config = require('./config.json');
const prefix = require('discord-prefix');
const defaultPrefix = config.prefix;
// .. ignoring some part of the code ...
client.on('message', message =>{
// prefix db part
if (!message.guild) return;
let guildPrefix = prefix.getPrefix(message.guild.id);
if (!guildPrefix) guildPrefix = defaultPrefix;
if(message.content === '<@!849854849351942144>'){
message.channel.send(`My Prefix is \`${guildPrefix}\`. Use \`${guildPrefix}help\` for my commands!`)
}
if(message.channel.type === 'dm') return;
// discord.js command handler
if(!message.content.startsWith(guildPrefix) || message.author.bot) return;
const args = message.content.slice(guildPrefix.length).split(/ +/);
const cmd = args.shift().toLowerCase();
const command = client.commands.get(cmd) || client.commands.find(command => command.aliases && command.aliases.includes(cmd));
// ...
const Discord=require('Discord.js');
const client=new Discord.client();
常数fs=要求('fs');
const config=require('./config.json');
常量前缀=require('discord-prefix');
const defaultPrefix=config.prefix;
// .. 忽略代码的某些部分。。。
client.on('message',message=>{
//前缀db部分
如果(!message.guild)返回;
让guildPrefix=prefix.getPrefix(message.guild.id);
如果(!guildPrefix)guildPrefix=defaultPrefix;
如果(message.content==''){
message.channel.send(`My Prefix是\${guildPrefix}\`。对于我的命令使用\${guildPrefix}help\`)
}
if(message.channel.type==='dm')返回;
//discord.js命令处理程序
如果(!message.content.startsWith(guildPrefix)| | message.author.bot)返回;
const args=message.content.slice(guildPrefix.length.split(+/);
const cmd=args.shift().toLowerCase();
const command=client.commands.get(cmd)| client.commands.find(command=>command.alias&&command.alias.includes(cmd));
// ...
我忽略了主代码的某些部分,只添加了前缀部分。为此,我使用了一个名为
discord prefix
的包。当需要从main.js
中导出前缀时,您得到未定义的的原因是您从未导出值
如果您想通过使用require
获取前缀
,则必须执行以下操作:
main.js
const serverPrefix='!';
exports.prefix=服务器前缀;
//这也将有助于:
module.exports.prefix=服务器前缀;
help.js
const{prefix}=require('./main.js');
//或:
const prefix=require('./main.js')。前缀;
您可以阅读有关导出的更多信息
但是您正在使用一个名为
npm包
,如果您查看这些示例,您应该注意到有两种有趣的方法:
.setPrefix()
.getPrefix()
因此,如果您想获得在main.js
中指定的前缀,那么在help.js
中,您必须使用.getPrefix()
函数。但在此之前,您必须先使用.setPrefix()
设置前缀:
main.js
const prefix=require('discord-prefix');
//这是可选的,您也可以改用message.guild
const{guild}=消息
如果(!prefix.getPrefix(guild.id))prefix.setPrefix(“!”,guild.id);
然后,您可以使用.getPrefix
函数获取前缀:
help.js
const prefix=require('discord-require');
const{guild}=消息;
const guildPrefix=prefix.getPrefix(guild.id);
或者。。。
…您可以使用.env
文件。这要简单得多(在我看来),在将所有每服务器设置
移动到数据库
之前,我也使用了它。因此,您必须安装并创建一个名为.env
的文件
现在,如果您想为您的
设置前缀(非特定服务器),您需要如下设置:
例子
既然您已经成功地创建了.env
文件并定义了一些变量
,那么您必须在main.js
中要求使用该新包:
main.js
require('dotenv').config()
现在,您可以在任何地方获取定义的变量了,如下所示:
help.js
//不必将其分配给变量
常量前缀=process.env.prefix
//此架构适用于在.env中定义的每个变量:
process.env.LOGINTOKEN
process.env.WELCOMECHANNEL
//等等。。。
注
请确保将.env
文件添加到.gitignore
(如果使用git存储代码)你如何在main.js
中导出你的prefix
?我首先通过const defaultPrefix=config.prefix;
从config.json
导出它,然后为一个特定的公会导出guildPrefix
。我要发送我的main.js
文件吗?是的,只要根据你的问题更新它,这可能会帮助我们解决你的问题r问题:当然,我已经更新了代码哦,天哪,这是很多信息,非常感谢!!我会尽快更新我的代码没有问题,我们是来帮助你的^^^并让我知道你的代码现在是否工作^^是的,它完全工作了那太好了^^