javascript - MySQL查询后无法运行js命令

标签 javascript php mysql node.js ibm-cloud

我想从 MySQL 表中获取变量,并根据变量值打开我的 Web 应用程序窗口。我在应用程序的服务器端编写了 MySQL 连接查询。因此,当服务器连接建立时,可能会发生上述流程。 但是在获取变量值之后,代码不会向前运行,并且在 Debug模式下光标最终会成为 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";
}

最佳答案

您无法从回调中返回值,因为您的 abc() 函数在 return 语句运行之前返回 - 请注意 return > 从使用它的函数返回,而不是从某个外部函数返回。

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

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

关于javascript - MySQL查询后无法运行js命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42112975/

相关文章:

javascript - 无法使用 pubnub 在 map 中设置信息窗口

php - 如何在一个查询中组合 2 个选择?

php - 无法找出 mySQL 语法错误的来源

MySQL优化可以解决吗?

php - 从php中的本地服务器文件夹中删除图像

javascript - 为什么不能按前向顺序删除样式?

javascript - 如何在事件中使用异步等待?

php - 使用 PHP PDO 查询 MySQL 中的 DATE

java - 如何在 Spring Boot 中以内存高效的方式迭代 MySQL 中的大量记录

javascript - 如何配置 Express 响应对象自动给 JSON 添加属性?