Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Node.js和对2个数据库的请求_Javascript_Database_Node.js_Sync - Fatal编程技术网

Javascript Node.js和对2个数据库的请求

Javascript Node.js和对2个数据库的请求,javascript,database,node.js,sync,Javascript,Database,Node.js,Sync,案例: 两个函数,函数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(resp

案例: 两个函数,函数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
我的功能有什么问题?
我读过async,但不知道第一个函数将变量作为参数发送给下一个函数的示例。

使用回调。类似这样的事情-

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);