【问题标题】:discord.js help to read out .txt filediscord.js 帮助读出 .txt 文件
【发布时间】:2022-01-03 01:21:04
【问题描述】:

我有一个关于 discord.js 的简单问题。 因此,我第一次尝试使用 Javascript 创建 Discord Bot,但遇到了一个问题。我想读出一个 .txt 文件,它工作得很好,但现在我想用嵌入发送回数据。

if(command === 'akte') {
        embed.setTitle("Akten Auskunft")
        var Url = null
        if(args.length < 3) {
            embed.setDescription("Bitte tragen sie den Vor- und Nachnamen ein! \t\n Benutzen sie den Syntax: !Akte [Vorname] [Nachname]")
        } else {
            var path = `./Datenbank/${args[1]}.${args[2]}/`
            if(fs.existsSync(path)){
                fs.readdir(path, (err, files) => {
                    files.forEach(file => {
                        if(file === 'Bild.txt') {
                            return
                        }
                        textt = fs.readFileSync(path + file).toString('utf-8');
                        console.log(textt)
                
                        embed.addField(file , textt, false)
                    })
                  })
                } else {
                    embed.setDescription("Es gibt noch keine Akte über  " + args[1] + " " + args[2] + "!");
                }
            }
            message.channel.send(embed)
        }

控制台的输出工作正常,但我无法将数据写入嵌入

【问题讨论】:

  • 它发送什么 rn?一个空的嵌入,什么都没有还是别的什么?
  • 所以我之前在代码中定义了嵌入颜色和缩略图,然后我通过设置缩略图、标题和颜色返回一个空嵌入

标签: node.js discord.js


【解决方案1】:

你正在使用 fs#readdir 来读取目录,但是这个函数是 async,所以回调可以(并且在这种情况下)在它后面的代码之后被触发,所以你正在将字段添加到已发送的嵌入中。
要解决此问题,请将行移动以将嵌入发送到最后一个 else 中,并将同一行添加到回调的末尾和第二个 if 中。

if(command === 'akte') {
        embed.setTitle("Akten Auskunft")
        var Url = null
        if(args.length < 3) {
            embed.setDescription("Bitte tragen sie den Vor- und Nachnamen ein! \t\n Benutzen sie den Syntax: !Akte [Vorname] [Nachname]")
            message.channel.send(embed)
        } else {
            var path = `./Datenbank/${args[1]}.${args[2]}/`
            if(fs.existsSync(path)){
                fs.readdir(path, (err, files) => {
                    files.forEach(file => {
                        if(file === 'Bild.txt') {
                            return
                        }
                        textt = fs.readFileSync(path + file).toString('utf-8');
                        console.log(textt)
                
                        embed.addField(file , textt, false)
                    })
                    message.channel.send(embed)
                  })
                } else {
                    embed.setDescription("Es gibt noch keine Akte über  " + args[1] + " " + args[2] + "!");
                    message.channel.send(embed)
                }
            }
        }

【讨论】:

    猜你喜欢
    • 2017-01-03
    • 2021-10-07
    • 2021-08-11
    • 1970-01-01
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    • 2021-12-20
    相关资源
    最近更新 更多