【发布时间】:2019-10-23 04:44:41
【问题描述】:
所以我想做的是,创建一个函数,使用 mysql(不关心如何,但我为它找到了一个 npm,所以现在使用它。)从我的数据库中获取信息,然后提供我的 json用它。只要 console.log() 位于正确的位置,它就可以正常工作,但是我必须将其归还,因此我必须将其进一步向下移动。但是当我这样做时,它不会显示在我需要它的其他文件中。
我有两个基本相同的脚本,一个只是给另一个派系的。 - 所以我只展示一个,好像我找到了其中一个的解决方案,我对两个都有解决方案。
get_ally_online_players: function (guild) {
con.query("SELECT * FROM user_dbs WHERE guild='"+ guild +"'", function (err, result, fields) {
var con2 = mysql.createConnection({
host: result[0].host,
user: result[0].username,
password: result[0].password,
database: result[0].database
})
con2.connect()
con2.query("SELECT * FROM characters WHERE online='1' AND race=1 OR race=3 OR race=4 OR race=7 OR race=11", function (err, result, fields) {
allycount = 0
console.dir(result)
result.forEach(function(result) {
allycount = allycount+1
})
return allycount
});
con2.end()
});
}
这是我尝试拥有它的地方:
if(recieved.content === "!status")
{
var horde_players
var ally_players
horde_players == guilddb.get_horde_online_players("585919060722712670")
ally_players == guilddb.get_ally_online_players("585919060722712670")
console.log(guilddb.test())
//console.log(ally_players)
recieved.channel.send(ally_players + " : " + horde_players)
}
我已经尝试了很多东西......我还读到你必须使用回调,因为它显然太快了,就像它之前无法查询一样...... 不过,我想远离回调,因为在脚本中似乎很麻烦。但如果这是绝对必要的,那就这样吧。顺便说一句,它返回“未定义”。我也尝试过使用 Promise 并放置一个 setTimeout 函数等。
【问题讨论】:
-
提示:不要使用
x=1 OR x=2 OR x=3,而是使用x IN (1,2,3)。
标签: mysql node.js discord.js