首页 > 解决方案 > 将 {_stack: [ array ]} 获取到要放入 mysql 数据库的字符串

问题描述

我正在尝试获取存储在 mysql 数据库中的标题列表以放入数组中,因此我可以将其放入card-deck中找到的各种命令中,然后将其保存回数据库。

sql = `SELECT * FROM ${brawlname} WHERE brawlid = ("${brawlID}")`;
     con.query(sql, function(err, rows, fields) {
         if (err) throw err; 

         var playerAid = rows[0].playerAid
         var playerBid = rows[0].playerBid
         var playerAname = rows[0].playerAname
         var playerBname = rows[0].playerBname
         var deckanme = rows[0].deckname
         var brawlID = rows[0].brawlid

         console.log(`${deckname} found in database!`)

             if (message.author.id == playerAid) {
                 var playerAdeck = JSON.stringify(list) //I've omitted this in various attempts and went right to .split.

                 console.log(playerAdeck)

                 var playerAdeckarray = playerAdeck.split(", ")

                 var maindeckA = new Deck()

                 maindeckA.cards(playerAdeckarray)

                 console.log(maindeckA)

                 newdeckA = maindeckA.join(", ") //error happens here.

                 console.log(newdeckA)

我从指示行得到的错误是

抛出错误;// 重新抛出非 MySQL 错误 TypeError: maindeckA.join is not a function

在此处输入图像描述

上面的第一行是列表通过 Stringify 时,最后一部分是在它通过 .card 方法之后。

因此,在上面的示例文本中,我将获取从 mysql 查询中获得的名称列表,并将其转换为字符串,然后创建甲板对象。在另一个文件中,我获取这张卡片名称列表,将其从数据库中拉出,随机播放,然后尝试将其转换为新字符串并将其全部保存回来,以便在 .join(", ") 行中出现相同的错误. 这些函数在卡片组中工作,但将其转换为字符串以放入数据库的方式却没有。每当我将某些内容放入与卡片组1相关的功能之一中时,我都无法将其转换为可在数据库中使用的表单。我尝试过 .join、.toString() 等......其中大多数要么给我 [object Object] 要么给我“不是函数”错误。

感谢您的任何帮助!:D

标签: mysqlarraysnode.jsdiscord.js

解决方案


推荐阅读