生成用户名的函数返回未定义

时间:2018-07-25 22:02:15

标签: mysql express

在我正在构建的应用中,我正在后端创建一个用户名。当我调用此函数时,它每次都会返回未定义的值,但我不知道为什么。我从名字和姓氏构建一个字符串,如果用户名已经存在,则在末尾添加计数以使其唯一。

这是我的职能

function generateUsername(name) {
    var username = name.toLowerCase();

    database.query("SELECT COUNT(ID) AS total FROM `Users` WHERE Username LIKE ?", [username], function(err, result) {
        if(err) {
            console.log('Could not generate username');
        } else {
            if(result.length > 0) {
                let count = result[0].total;
                username = username + count;
            }

            return username;
        }
    });
}

我对函数的调用就是这样

router.post('/', function(req, res) {
    let firstname = req.body.user.firstname;
    let lastname = req.body.user.lastname;

    var username = generateUsername(firstname + lastname);
});

错误必须在database.query()中的某个地方,因为如果我删除它并只返回name.toLowerCase,我会得到名字+姓氏。但是我无法弄清楚查询中出了什么问题。

0 个答案:

没有答案