在我正在构建的应用中,我正在后端创建一个用户名。当我调用此函数时,它每次都会返回未定义的值,但我不知道为什么。我从名字和姓氏构建一个字符串,如果用户名已经存在,则在末尾添加计数以使其唯一。
这是我的职能
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,我会得到名字+姓氏。但是我无法弄清楚查询中出了什么问题。