Nodejs MySQL连接查询返回值以调用函数
我正在尝试从数据库中获取价值。用一个演示示例进行尝试。但是我在使用回调函数尝试同步调用时遇到问题。我是node.js的初学者,所以不知道这是否正确。
文件1:app.js
var data;
var db = require('./db.js');
var query = 'SELECT 1 + 1 AS solution';
var r = db.demo(query, function(result) { data = result; });
console.log( 'Data : ' + data);
文件2:db.js
var mysql = require('./node_modules/mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'root',
});
module.exports.demo = function(queryString, callback) {
try {
connection.connect();
console.log('Step 1');
connection.query(queryString, function(err, rows, fields) {
console.log('Step 2');
if (err) {
console.log("ERROR : " + err);
}
console.log('The solution is: ', rows[0].solution);
callback(rows[0].solution);
return rows[0].solution;
});
callback();
connection.end();
console.log('Step 3');
}
catch(ex) {
console.log("EXCEPTION : " + ex);
}
};
输出:
Step 1
Step 3
Data : undefined
Step 2
The solution is: 2
-
问题是这样的:
var r = db.demo(query, function(result) { data = result; }); console.log( 'Data : ' + data);
在
console.log
将运行回调函数被调用之前,因为db.demo
是异步的,这意味着它可能需要一些时间来完成,但所有的,而代码的下一行,console.log
将被执行。如果要访问结果,则需要等待回调函数被调用:
var r = db.demo(query, function(result) { console.log( 'Data : ' + result); });
这是大多数处理I / O的代码将在Node中起作用的方式,因此了解它很重要。
-
调用函数Fun(2),返回值是多少
2022-03-03 关注 0 浏览45 1答案
-
MySQL函数从查询返回值
2021-02-02 关注 0 浏览115 1答案
-
根据下面递归函数:调用函数fun(2),返回值是 [$##$]&...
2022-03-03 关注 0 浏览53 1答案
-
在返回值满足某些条件之前,如何调用函数序列?
2021-01-29 关注 0 浏览68 1答案
-
调用返回返回值的函数
2021-05-10 关注 0 浏览114 1答案
-
通过Ajax调用从函数返回值
2021-01-31 关注 0 浏览152 1答案
-
HTTPS可调用云函数未返回值
2021-01-31 关注 0 浏览92 1答案
-
从Go调用Python函数并获取函数返回值
2021-02-01 关注 0 浏览119 1答案
-
在32位操作系统中,我们定义如下变量 int (*n)[10]; 请问调用函数sizeof(n),返回值为( )
2021-11-03 关注 0 浏览101 1答案
-
PHP MySQL INSERT返回值,执行一次查询
2021-03-27 关注 0 浏览95 1答案