MySQL查询后无法运行js命令

时间:2017-02-08 12:20:34

标签: javascript php mysql node.js ibm-cloud

我想从MySQL表中获取一个变量,并根据变量值打开我的web应用程序窗口。我在应用程序的服务器端编写了MySQL连接查询。因此,当建立服务器连接时,可能发生上述流程。 但是在获取变量值之后,代码不会向前运行,并且在调试模式下,光标结束为y的返回值。 有人请帮忙解决这个问题。提前谢谢。

#!/usr/bin/env node
'use strict';

require('dotenv').config({silent: true});

var server = require('./app');
var port = process.env.PORT || process.env.VCAP_APP_PORT || 8000;
process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";

var def = function(){
server.listen(port, function() {
  // eslint-disable-next-line
  console.log('Server running on port: %d', port);
  return;
});
}

var X;
global.x = X;

var mysql = require('mysql');
var mysqlPool  = mysql.createPool({
  host     : 'localhost',
  user     : 'root',
  password : '',
  database : 'emp',
  debug    : true
});

var abc = function(){
 mysqlPool.getConnection(function(err, connection) { 
  connection.query("select exp from empid where id= 12345", function(err, rows){
  if(err) {
    throw err;
   } else {
    var y = rows[0].exp;
   }
  //connection.release(); 
  *return y;*
  });
 });
}

def();
abc();

if(abc > 2) {
  window.location.href = "http://www.w3schools.com";
}

1 个答案:

答案 0 :(得分:0)

您无法从回调中返回值,因为abc()函数在运行return语句之前会返回 - 请注意return从使用它的函数返回,不是一些外在的功能。

如果要在数据库查询处理程序之外使用该值,则可以返回承诺或使用回调。

有关详细信息,请参阅这些答案: