我想从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";
}
答案 0 :(得分:0)
您无法从回调中返回值,因为abc()
函数在运行return
语句之前会返回 - 请注意return
从使用它的函数返回,不是一些外在的功能。
如果要在数据库查询处理程序之外使用该值,则可以返回承诺或使用回调。
有关详细信息,请参阅这些答案: