mysql - Node.js 从 MySQL 查询返回结果

标签 mysql node.js callback

我有以下从数据库中获取十六进制代码的函数

function getColour(username, roomCount)
{
    connection.query('SELECT hexcode FROM colours WHERE precedence = ?', [roomCount], function(err, result)
    {
        if (err) throw err;
        return result[0].hexcode;
    });
}

我的问题是我在回调函数中返回结果,但 getColour 函数没有返回任何内容。我希望 getColour 函数返回 result[0].hexcode 的值。

在我调用 getColour 的那一刻,它没有返回任何内容

我试过做类似的事情

function getColour(username, roomCount)
{
    var colour = '';
    connection.query('SELECT hexcode FROM colours WHERE precedence = ?', [roomCount], function(err, result)
    {
        if (err) throw err;
        colour = result[0].hexcode;
    });
    return colour;
}

当然 SELECT 查询已经完成,返回 colour

中的值

最佳答案

您必须仅对回调中的 db 查询结果进行处理。就像。

function getColour(username, roomCount, callback)
{
    connection.query('SELECT hexcode FROM colours WHERE precedence = ?', [roomCount], function(err, result)
    {
        if (err) 
            callback(err,null);
        else
            callback(null,result[0].hexcode);

    });

}

//call Fn for db query with callback
getColour("yourname",4, function(err,data){
        if (err) {
            // error handling code goes here
            console.log("ERROR : ",err);            
        } else {            
            // code to execute on data retrieval
            console.log("result from db is : ",data);   
        }    

});

关于mysql - Node.js 从 MySQL 查询返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18361930/

相关文章:

mysql - DROP TRIGGER 在 mysql 中如何工作?

javascript - Promise.all() 中的 Promise 有时返回未定义/crawler-request 包nodejs

mysql - 如何使用 Node 和 express 向 MySQL 表中插入数据?

ios - 用于 CFunctionPointer 到 Swift 闭包的 Objective-C 包装器

ios - iOS 中的多个委托(delegate)

php - Mysql如果不存在则返回0

php - 我试图用 PHP、MySQL、jQuery 和 css 处理的乱七八糟的事

javascript - setInterval 使用 node.js 抛出的 TypeError

php - 如何访问具有相同名称的不同表的多个mysql行

node.js - Mongoose 排序嵌套的对象数组不起作用