javascript - Pass result from a function to another function on nodejs -


i have function connect db , consult in it.

function conn (text){   var mysql      = require("mysql"); var connection = mysql.createconnection({     connectionlimit : 100, //important     host     : 'xxx.xxx.xxx.xxx',     user     : 'xxxxxx',     password : 'xxxxxxx',     database : 'xxxxxxxx' });  connection.connect();  var querystring = 'select usuario.idusuario usuario usuario.nickname = ' + '"' +  text + '"';    function getid(text, callback){ connection.query(querystring, function(err, rows, fields) {   var id;     if (err){        callback(err, null);     }else{       (var in rows) {           id = rows[i].idusuario;       }       callback(null, id);     } }); }  var result;     getid(text, function(err, content) {     if (err) {       console.log(err);     } else {       result = content;     } }); connection.end(); }; 

now, need result in other variable use in other functions inside js file. how can value without code inside variable?

your function conn (text) fetching data using callbacks, need carry pattern way consuming code. i'm not sure "other functions" like, let's pretend 1 looks this:

function awesomefunction() {   var sweetresult = conn('sweet nickname');   alert(sweetresult); } 

conn going connect , issue query db. not want stop else , wait result come back, want db library call when has results, hence callbacks. since database isn't stopping everything, control returns conn function, , awesomefunction, , passes next line alert(sweetresult). wait! didn't return conn, more important, database hasn't called results yet!

so, need awesomefunction more this:

function awesomefunction() {   conn('sweet nickname', function(err, sweetresult) {     alert(sweetresult);   }); } 

which means, conn needs accept , use callback too:

function conn (text, resultsareincb){     ...   connection.query(querystring, function(err, rows, fields) {     var id;     connection.end();     if (err){       resultsareincb(err, null);     } else {       (var in rows) {         id = rows[i].idusuario;       }       callback(null, id);     }   });   ... }; 

Comments

Popular posts from this blog

jOOQ update returning clause with Oracle -

java - Warning equals/hashCode on @Data annotation lombok with inheritance -

java - BasicPathUsageException: Cannot join to attribute of basic type -