Javascript 说明设置和查看问题
我一直在尝试为我的个人资料命令嵌入设置一个Bio,人们可以更改。我认为它应该可以工作,但我的代码似乎有问题 以下是相关代码:Javascript 说明设置和查看问题,javascript,github,heroku,discord.js,Javascript,Github,Heroku,Discord.js,我一直在尝试为我的个人资料命令嵌入设置一个Bio,人们可以更改。我认为它应该可以工作,但我的代码似乎有问题 以下是相关代码: const PREFIX = '!'; var bio = {}; client.on('message', async message => { let args = message.content.substring(PREFIX.length).split(" "); switch (args[0]) { case 'setBio':
const PREFIX = '!';
var bio = {};
client.on('message', async message => {
let args = message.content.substring(PREFIX.length).split(" ");
switch (args[0]) {
case 'setBio':
bio[message.author.id] = args[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20];
message.channel.send('Your bio has been changed!')
.then(msg => msg.delete(3000));
break;
case 'profile':
const embed = new Discord.RichEmbed()
.setTitle('__' + message.author.username + '\'s Profile__')
.addField('Bio: ', bio[message.author.id])
.setColor(message.member.colorRole.color)
.setThumbnail(message.author.avatarURL)
message.channel.send(embed);
break;
}
});
这两个命令现在都显示了,但是现在当我尝试更改Bio并显示配置文件时,Bio没有更改。我检查了控制台,但没有显示任何错误。现在它非常烦人。问题是运行args[1,2,3,…,20]只会返回您传递给它的最后一个索引,而不会返回包含每个索引的整个数组。您可以将该行替换为:
bio[message.author.id] = args.slice(1)
它将返回数组减去其中的第一项
至于嵌入此数组,您只能将字符串值传递到.addField方法中,因此,您应该将数组连接到一个连贯的字符串中,如下所示:
.addField('Bio: ', bio[message.author.id].join(" "))
我不认为args[1,2,3,…,20]在做你认为它在做的事情…你是什么意思?如果我做一个数组,让a=[1,2,3,4]并调用a[0,1],我得到的输出是2,这意味着只有第20个参数会出现?我必须做什么才能让它看到所有args 1-20?谢谢。我得到它也做了一个错误,当你试图查看你的个人资料,而不设置个人简历。现在只需为Bios设置一个数据库。。我考虑的是JSON,但我不知道如果您希望以JSON格式存储数据,我建议您研究MongoDB。您可以使用mongooseOk从discord服务器与MongoDB交互,但我会小心一点,因为我想我不知道它的安全性是多久前听到的消息。每个数据库都有安全问题,防止对它的无效访问由您来决定,即清理输入。如果,我记得不是MongoDB本身,只是一些数据库攻击-