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
Post a Comment