具有Mysql数据库返回值的Nodejs

Kor*_*clü 2 mysql node.js node-mysql

我有以下代码.我是nodejs&js的新手

我想在1. log中获取值但是我得到了未定义.只有2.日志输出到日志.

从回调https://github.com/felixge/node-mysql读取nodeJS返回值,但没有关于返回值的示例.

我不知道如何在node-mysql页面中使用给定示例的return语句.

exports.location_internal = function (req, res) {
    var r = getExternalLocation(2);
        // 1. log  
    console.log(r);
    res.send( r);
}

var getExternalLocation = function (id) {
    pool.getConnection(function(err, connection){
      if(err) throw err;

      var response = {};
      connection.query( "select * from external_geo_units where geo_unit_id = "+id,  function(err, rows){
        if(err) throw err;
        response.data= rows;
                // 2. log
        console.log(response);
        return  response;
      });
      connection.release();
    });

};

msc*_*dex 5

它是异步的,因此您必须传入回调以在准备好时获取值.例:

exports.location_internal = function(req, res, next) {
  getExternalLocation(2, function(err, rows) {
    if (err)
      return next(err);
    console.log(rows);
    res.send(rows);
  });
};

function getExternalLocation(id, cb) {
  pool.getConnection(function(err, conn) {
    if (err)
      return cb(err);

    conn.query("select * from external_geo_units where geo_unit_id = ?",
               [id],
               function(err, rows) {
      conn.release();
      cb(err, rows);
    });
  });
}
Run Code Online (Sandbox Code Playgroud)