【问题标题】:Quick.db discord.jsQuick.db discord.js
【发布时间】:2021-02-20 03:25:18
【问题描述】:

我正在创建一个从 .db 文件返回项目的 userinfo 命令,但它返回为 [object Object]。我如何使它返回名称? 这是我的代码:

const { MessageEmbed } = require(`discord.js`)
const db = require(`quick.db`);

exports.execute = async(client, message, args) => {
    let member = message.mentions.members.first() || message.member;
    let hasStarted = db.fetch(`started_${member.id}`)
    let bal = db.fetch(`money_${member.id}`)
    let items = db.get(`items_${member.id}`)
    let displayItems;
    let started;

    if (bal === null) bal = 0;
    if (items === null) {
        displayItems = 'This user has no items!';
    } else {
        displayItems = items;
    }
    if (hasStarted === null) {
        started = 'False'
    } else {
        started = 'True'
    }

    const userEmbed = new MessageEmbed()
    .setTitle(member.displayName + '#' + member.user.discriminator + "'s Profile")
    .addField(`Balance:`, bal)
    .addField(`Items:`, displayItems)
    .addField(`Has Started:`, started)
    .setFooter(`Requested By: ${message.author.username}`, message.author.avatarURL({ dynamic:true }))
    .setImage(member.user.avatarURL({ dynamic:true }))
    message.channel.send(userEmbed)
}

exports.help = {
    name: 'userinfo',
    aliases: ['user'],
    usage: 'userinfo <user>'
}

【问题讨论】:

  • [object Object] 被显示时,这意味着你要显示的东西是一个对象。尝试console.log() 以查看该对象中的内容。
  • Quick.db 是一个基于 Promise 的节点包。当某事基于承诺时,通常意味着您必须等待它们。请记住,您只能等待异步函数中的项目。

标签: javascript discord.js quick.db


【解决方案1】:

Discord 不发送对象,而是发送字符串。如果数据是一个对象,你应该尝试:

// Send this, not object:
c.send(JSON.stringify(object)) // Also, you should wrap in a code block with the JSON language, it'll look much nicer

如果是 Promise,你应该尝试:

c.send(await promise)

【讨论】:

    【解决方案2】:

    试试这个

    let member = message.mentions.members.first() || message.member;
    let hasStarted = db.fetch(`started_${member.id}`)
    let bal = db.fetch(`money_${member.id}`)
    let items = db.get(`items_${member.id}`)
    let displayItems;
    let started;
    
    if (bal === null) bal = 0;
    if (items === null) {
        displayItems = 'This user has no items!';
    } else {
        displayItems = items;
    }
    if (hasStarted === null) {
        started = 'False'
    } else {
        started = 'True'
    }
    
    const userEmbed = new MessageEmbed()
    .setTitle(member.displayName + '#' + member.user.discriminator + "'s Profile")
    .addField(`Balance:`, `${bal}`)
    .addField(`Items:`, `${displayItems}`)
    .addField(`Has Started:`, `${started}`)
    .setFooter(`Requested By: ${message.author.username}`, message.author.avatarURL({ dynamic:true }))
    .setImage(member.user.avatarURL({ dynamic:true }))
    message.channel.send({embeds: [userEmbed}})
    

    【讨论】:

    • 考虑为代码的作用以及它如何解决问题添加更多描述。
    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2021-05-31
    • 2021-12-30
    • 2021-12-03
    • 2021-11-13
    • 2021-06-21
    • 1970-01-01
    • 2021-03-15
    • 2021-11-02
    • 2021-03-12
    相关资源
    最近更新 更多