所以我尝试对我的数据库进行基本查询并使用 JQuery 取回一个值。
JQuery 代码:
function getTokens(user, cb) {
$.post("/getTokens", {username: user}, function(data) {
return cb(data);
});
}
Node :
app.post('/getTokens', function(req, res) {
connection.query('select tokens from users where username = "' + req.body.username + '"', function(err, rows, fields) {
if (err)
console.error(err)
else {
res.send(rows[0].tokens.toString());
}
});
});
我想将返回值存储在一个字符串中。在回调函数中,如果我使用 console.log 或 alert 'tokens' 参数,它会正确显示它,但是如果我像下面那样返回它,当我将它应用于 #username_field 时,'tokens' 是未定义的。像这样:
totalTokens = getTokens(username, function(tokens){
// console.log(tokens); why does this work, but the line below doesn't?
return tokens;
});
$('#username_field').text('Tokens: ' + tokens);
如果有人可以帮助我将返回值“tokens”添加到我的#username_field 中,那就太棒了。任何建议都会有所帮助,这让我发疯,因为它一直返回未定义。
最佳答案
Node 部分看起来不错。
请为您的前端执行此操作。去掉返回值和变量,你不需要那个:
getTokens(username, function(tokens){
$('#username_field').text('Tokens: ' + tokens);
});
仅供引用,您的代码使用变量不正确。 jquery 部分将使用 totalTokens,而不是标记。
关于JQuery Post to NodeJS 返回 MySQL 值未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38810550/