node.js mysql result,Node.js返回MySQL查询结果

I have the following function that gets a hexcode from the database

function getColour(username, roomCount)

{

connection.query('SELECT hexcode FROM colours WHERE precedence = ?', [roomCount], function(err, result)

{

if (err) throw err;

return result[0].hexcode;

});

}

My problem is that I am returning the result in the callback function but the getColour function doesn't return anything. I want the getColour function to return the value of result[0].hexcode.

At the moment when I called getColour it doesn't return anything

I've tried doing something like

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;

}

but of course the SELECT query has finished by the time return the value in colour

解决方案

You have to do the processing on the results from the db query on a callback only. Just like.

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

}

});

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值