【问题标题】:JQuery Post to NodeJS return MySQL value gives undefined?JQuery Post到NodeJS返回MySQL值给出未定义?
【发布时间】:2016-12-13 03:03:33
【问题描述】:

所以我正在尝试对我的数据库进行基本查询并使用 JQuery 拉回一个值。

JQuery 代码:

function getTokens(user, cb) {     
    $.post("/getTokens", {username: user}, function(data) {
        return cb(data);
    });
}

节点:

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 或警告 '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);

如果有人可以帮助我将返回值“令牌”放到我的#username_field 上,那就太好了。任何建议都会有所帮助,它不断返回 undefined 让我抓狂。

【问题讨论】:

    标签: jquery mysql node.js


    【解决方案1】:

    节点部分看起来不错。

    改为为您的前端执行此操作。去掉 return 和变量,你不需要:

    getTokens(username, function(tokens){
    $('#username_field').text('Tokens: ' + tokens);
    });
    

    仅供参考,您的代码错误地使用了变量。 jquery 部分将使用totalTokens,而不是令牌。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-30
      • 2020-11-28
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多