JQuery Post到NodeJS返回MySQL值给undefined?

时间:2016-08-07 03:14:04

标签: jquery mysql node.js

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

JQuery代码:

return driver.wait(until.elementLocated(bySelector), 500, 'not found').then((element) => {
    return driver.wait(until.elementIsVisible(element), 5000, 'not found');
});

节点:

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

我想将返回的值存储在字符串中。在回调函数中,如果我是console.log或者警告'tokens'参数它会正确地显示它,但是如果我像下面那样返回它,那么当我将它应用到#username_field时,'tokens'是未定义的。像这样:

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());
        }
    });
});

如果有人可以帮助我将返回值“令牌”放到我的#username_field上,这将是非常棒的。任何建议都会有所帮助,这让我感到疯狂,因为它一直未定义。

1 个答案:

答案 0 :(得分:0)

节点部分看起来很好。

这样做是为了你的前端。摆脱返回和变量,你不需要:

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

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