javascript - 尝试将数据库中的整数添加到 let 但总是返回 NaN

标签 javascript mysql discord.js

我一直在尝试从我的数据库 (MySQL/PHPMyAdmin) 中的表中获取一些数字,并将它们添加到代码中的“let”中,但最终输出始终为 NaN。

我尝试使用 parseInt() 函数以防表中的数字被视为字符串但没有成功。

var pointsQuery = "SELECT * FROM reacts WHERE userid=" + message.author.id;
con.query(pointsQuery, function (err, rows, fiedls) {
if (err) {
  message.channel.send(err.message);
  throw err;
}
let upvotes = 0;
let downvotes = 0;
for (var i in rows) {
   upvotes = upvotes + parseInt(rows[i].upvotes, 10);
    downvotes = downvotes + parseInt(rows[i].downvotes, 10);
}
upvotes = upvotes - parseInt(rows, 10);
downvotes = downvotes - parseInt(rows, 10);

console.log("up: " + upvotes);
console.log("down:" + downvotes);

let finalPoints = 10 + parseInt((upvotes - (downvotes * 2)), 10);

message.channel.send("<@" + message.author.id + "> has " + finalPoints + " points!");

})

我用于“调试”的两个 console.log 的输出应该是一个数字,但输出的是“NaN”。 final points 应该是表达式 10 + (upvotes - (downvotes * 2))

最佳答案

在第 13 和 14 行中,您尝试解析并排列成一个 Int,这是不可能的。如果您想减去总行数,则需要使用 array.Lengtharray.Count 指定您想要的长度,具体取决于您的框架。此外,您确实应该创建一个变量 let len = parseInt(rows.Length, 10); 来减去,因为您使用相同的值执行了两次并且您不应该浪费资源 (转载评论回复)

代码:

let len = parseInt(rows.Length, 10);
upvotes = upvotes - len;
downvotes = downvotes - len;

关于javascript - 尝试将数据库中的整数添加到 let 但总是返回 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57922368/

相关文章:

javascript - 如何在html中绘制圆弧的SVG路径

Mysql查询统计多个表的数据并显示0为空值

java - 错误代码 : 1046. 未选择数据库 通过在侧边栏的 SCHEMAS 列表中双击其名称来选择要使用的默认数据库

php - SELECT LAST_INSERT_ID() 未正确生成

javascript - Discord.js 的 EventEmitter Javascript 限制问题

javascript - 从其他文件访问变量

javascript - 不可变的 .toArray() 不会渲染数据 - ReactJS

javascript - 如何添加和删除 div(输入)

javascript - 在 Mongo View 中处理数学计算

javascript - 如何一次编辑无限数量的 mysql 行?