首页 > 解决方案 > 如何创建一个在 node.js 和 mysql 中未使用的随机数

问题描述

我尝试使用以下代码创建一个随机数

let randomnumber = (Math.random().toString().slice(-8))

我会检查是否mysql table有这个随机数,如果没有,这个数字将被插入到表中,如果有,再次运行上面的代码,再次检查。像这样

await mysqlModel.checkNumberExit([randomnumber])
.then(async(results) => {
 if (results.length === 0) {
    //doesn't exist, do something
 } else {
   //exist, repeat until the random number doesn't exist
 }

这是我的问题,我怎样才能有效地完成这个功能,我使用的这种方式效率很低,有什么想法吗?

标签: mysqlnode.jskoa

解决方案


您可以使用函数来生成和检查:

function getRandomNumber() {
   let randomnumber = Math.floor(Math.random(1000,9999)*100000000);

    mysqlModel.find({"fieldName":randomnumber})
    .then(res => {
        if(!res) {
            //doesn't exist, do something
        }else{
            getRandomNumber();
        }
    }).catch(err => {
        //err
    });
}

使用以下方法调用函数:

getRandomNumber()

推荐阅读