所以我正在从Node.js的MYSql数据库中检索随机行
无论我尝试什么(此时有将近100种变体),此函数都会返回未定义的内容:
var randomIndex = function(){
var rand;
con.query("SELECT COUNT(ind) FROM people", function(err, result, fields){
if (err) throw err;
var count = result[0]["COUNT(ind)"];
rand = Math.floor((Math.random() * count));
});
return rand;
}
我认为我最引人注目的替代方法是:
var randomIndex = function(){
con.query("SELECT COUNT(ind) FROM summoner", function(err, result, fields){
if (err) throw err;
var count = result[0]["COUNT(ind)"];
var rand = Math.floor((Math.random() * count));
return rand;
});
}
我也尝试使用function randomIndex(){
而不是var randomIndex = function(){
,但据我所知它们是完全相同的,对吧?
我已经尽可能地抛出了console.log(),这让我感到困惑。如果我在rand = Math.floor((Math.random() * count));
之后登录rand,它将记录为0,所以我不明白在我尝试的两种情况下,它将如何返回undefined,除非以下两个条件均成立:
rand = Math.floor((Math.random() * count));
仅在使用con.query函数时才向rand内部分配一个值,我认为这不是JS应该如何工作的?很抱歉这是一个不好的问题,或者已经以某种方式被问到了,我搜索了几个小时却没有找到任何地方。