JQuery Post to NodeJS 返回 MySQL 值未定义?

标签 jquery mysql node.js

所以我尝试对我的数据库进行基本查询并使用 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/

相关文章:

javascript - module.exports 和外部范围

node.js - Git 撤消属于 .gitignore 的文件夹中的更改

javascript - Node.js Express : Redirect or render on post

基于 Javascript 的故事导航

jquery - jQuery 中的多个 else if 语句

javascript - 动态绑定(bind)值以双击

php - 将 JSON 字符串解析为数据库

mysql - 获取多个表中的总记录作为 View 表(mysql)

javascript - 完全重新加载页面,但在选择新选项后保留初始发布数据

mysql - 用于连接但不在其他表中的 SQL 语句