node.js - How to make multiple mysql queries in Node with promises -


g'day all,

i'm trying convert old php code on node, , part of journey has been trying figure out best way perform sql queries against database (i'm using sql can port existing database over).

i've got them working, have encountered "pyramid of doom" problem, , it's subsequent scope issues (i.e. returned values not baing available subsequent "then"s).

an example of sort of code have here is: (dbpool.queryopromise returns query wrapped in promise)

dbpool.queryopromise(query)                                                                                      .then(function(result){                                                                                              console.log(result);                                                                                               var query = {                                                                                                          sql:"insert newusers (newuserid, ipaddress, email) values (?,?,?)",                                             values: [newuserid, ipaddress, email]                                                                            };                                                                                                                 dbpool.queryopromise(query)                                                                                        .then(function(value){                                                                                                 console.log(value);                                                                                                  if(value.code==200) {                                                                                                    res.status(200).json({code:200, status:"new user created"});                                                       } else {                                                                                                                 res.status(400).json({code:value.code, status:"error creating new user: ".value.status});         }                                                                                                                })        }) 

does have view on best way attack situation?

thanks!

you're supposed return subsequent promises instead of calling .then on them

dbpool.queryopromise(query) .then(function(result) {     console.log(result);     var query = {         sql: "insert newusers (newuserid, ipaddress, email) values (?,?,?)",         values: [newuserid, ipaddress, email]     };     // return second promise,      return dbpool.queryopromise(query); }) .then(function(value) {     console.log(value);     if (value.code == 200) {         res.status(200).json({code: 200, status: "new user created"});     } else {         res.status(400).json({code: value.code, status: "error creating new user: ".value.status });     } }) .catch(console.error); // , catch errors @ end.  

it's #1 rookie mistake in using promises. checkout wonderfully written article addressing issues this


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -