Node.js并请求2个数据库
Node.js and request to 2 databases
案例:两个函数,函数1返回不完整的数据,因为函数2未完成。
Var db; // connection to first database
Var db2; // connection to other database
Var user;
Function1 = function(user_id) {
Db.query("SELECT variable1 FROM tbl_db WHERE user_id = '"+ user_id +"'").success(function(response) {
user.id = user_id;
user.v1 = variable1;
console.log(user); // log1
var variables = function2(variable1, user_id);
console.log(variables); // log2
user.x = variables.x;
user.y = variables.y;
console.log(user); // log3
return user;
});
}
function2 = function(val, user_id) {
// connection to other database
Db2.query("SELECT x,y FROM tbl_db2 WHERE val = '"+ val +"' AND user_id = '"+ user_id +"' ").success(function(response) {
console.log(response); // log4
return response;
});
}
// start
function1(123);
//log1 variable
//log2 undefined
//log3 not correct user
//log4 variable2
我需要
//log1 variable
//log4 variable2
//log2 variable2
//log3 correct user
我的函数出了什么问题?我读过关于异步的文章,但我不能举例说明第一个函数将变量作为参数发送给下一个函数的位置。
使用回调。类似这样的东西-
Var db; // connection to first database
Var db2; // connection to other database
Var user;
function1 = function(user_id) {
Db.query("SELECT variable1 FROM tbl_db WHERE user_id = '"+ user_id +"'").success(function(response) {
user.id = user_id;
user.v1 = variable1;
console.log(user); // log1
function2(variable1, user_id, function(variables) {
console.log(variables); // log2
user.x = variables.x;
user.y = variables.y;
console.log(user); // log3
return user;
});
});
}
function2 = function(val, user_id, callback) {
// connection to other database
Db2.query("SELECT x,y FROM tbl_db2 WHERE val = '"+ val +"' AND user_id = '"+ user_id +"' ").success(function(response) {
console.log(response); // log4
callback(response);
});
}
// start
function1(123);
相关文章:
- JavaScript,PHP-用JavaScript将多个数据库记录发送到变量或表
- 如何基于两个下拉选择从数据库中检索数据
- 在不使用循环的情况下,从一个数据库字符串值向javascript数组添加多个对象
- 如何比较两个MySql数据库
- Sequelize:使用多个数据库
- ASP.NET MVC-如何捕获多个复杂的ListBox值并将其保存到数据库中
- Node.js设计:多个异步函数使用作为闭包传递的函数写入数据库
- 通过 ajax POST 向 PHP 发送两个值以查询 SQL 数据库
- 如何在Meteor中将多个数据库的结果显示为列表格式
- AJAX 更新到多个数据库表
- IndexedDB - 对象存储 vs 多个数据库 vs 索引
- 在 MySQL 中使用多个数据库查询与单个数据库查询进行比较
- 如何使用 Node 从单个连接/事务进行多个数据库调用.js而且繁琐
- Node.js并请求2个数据库
- 带有get请求的多个数据库查询
- AngularJS异步调用多个数据库,并且保存顺序不正确
- SQLite openDatabase创建多个数据库
- 如何使用ExpressJS访问多个数据库
- 沙发数据库、沙发连接器和多个数据库
- 流星:多个数据库的预输入事件