1

I am coding user register form. In node-js node mysql plugin, do I have to write nested codes like this?

var query1 = connection.query('SELECT * FROM table1 WHERE var1 = ?', [var1], function(err, results1) {

    if(results1[0]) {
        var query2 = connection.query('SELECT * FROM table2 WHERE var2 = ?', [var2], function(err, results2) {

            if(results2[0]) {
                var query3 = connection.query('SELECT * FROM table2 WHERE var3 = ?', [var3], function(err, results3) {

                    if(results3[3]) {
                        // do it.
                    }

                });
            }

        });
    }

});

To write nested codes is really boring. Is there a way like this to do multiple queries?

var query1 = connection.query('SELECT * FROM table1 WHERE var1 = ?', [var1], function(err, results1) {  });
var query2 = connection.query('SELECT * FROM table1 WHERE var2 = ?', [var2], function(err, results2) {  });
var query3 = connection.query('SELECT * FROM table1 WHERE var3 = ?', [var3], function(err, results3) {  });

if(results1[0]) {

} else if(results2[0]) {

} else if(results3[0]) {

} else {
    // do it.
}
ozer
  • 335
  • 1
  • 5
  • 13

1 Answers1

0

A common solution to these kinds of problems is to use a utility module like async. For your particular situation, you might use something like async.waterfall.

mscdex
  • 104,356
  • 15
  • 192
  • 153
  • I didnt ask async problem... I just asked is to write nested code necessary like first block – ozer Aug 28 '14 at 22:09
  • 1
    And my answer was that you don't *have* to write nested code like that and that `async` is one alternative to writing nested anonymous function. – mscdex Aug 28 '14 at 22:55
  • Thank you. Well, Is there a other way? – ozer Aug 28 '14 at 23:16