Advertisement
Guest User

Untitled

a guest
Sep 29th, 2016
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.71 KB | None | 0 0
  1. var mysql = require('mysql');
  2. var async = require('async');
  3.  
  4. var connection = mysql.createConnection({
  5. host: 'localhost',
  6. user: 'root',
  7. database: 'test',
  8. password: '12345'
  9. });
  10.  
  11. var chairArr = ['Red', 'Green', 'Yellow', 'Voilet', 'Brown'];
  12. var inventoryName = "Chairs";
  13. addInventory(inventoryName, chairArr, function(err, result) {
  14. if(err) {
  15. console.log("Err : "+err);
  16. }
  17. console.log("Successfully added an inventory");
  18. });
  19.  
  20.  
  21. function addInventory(inventoryName, chairArr, callback) {
  22. var sqlQuery = "INSERT INTO tb_inventory(name, added_on) VALUES( ?, NOW())";
  23. connection.query(sqlQuery, [inventoryName], function(err, result) {
  24. if(err) {
  25. return callback(err, null);
  26. }
  27. var inventoryId = result.insertId;
  28. var tasks = [];
  29. for(var i = 0; i < chairArr.length; i++) {
  30. tasks.push(addChair.bind(null, inventoryId, chairArr[i]));
  31. }
  32. async.parallel(tasks, function(taskErr, taskRes) {
  33. if(taskErr) {
  34. return callback(taskErr, null);
  35. }
  36. callback(null, result);
  37. });
  38. });
  39. }
  40.  
  41. function addChair(inventoryId, chairColor, callback) {
  42. var sqlQuery = "INSERT INTO tb_chairs(inventory_id, color) VALUES(?, ?)";
  43. connection.query(sqlQuery, [inventoryId, chairColor], function(err, result) {
  44. if(err) {
  45. return callback(err, null);
  46. }
  47. callback(null, result);
  48. });
  49. }
  50.  
  51. var mysql = require('mysql');
  52. var async = require('async');
  53.  
  54. var dbPool = mysql.createPool({
  55. host: 'localhost',
  56. user: 'root',
  57. database: 'test',
  58. password: '12345',
  59. connectionLimit: 10
  60. });
  61.  
  62. //var chairArr = ['Red', 'Green!++++++++++++++++!!!!!!!!!!!!!!!!!!!!!!!!!!!!', 'Yellow', 'Voilet', 'Brown']; //Case where query fails due to VARCHAR(20) limit
  63. var chairArr = ['Red', 'Green', 'Yellow', 'Voilet', 'Brown'];
  64. var inventoryName = "SOME ITEM ";
  65. dbPool.getConnection(function(conErr, localConnection) {
  66. localConnection.beginTransaction(function(transactionErr) {
  67. if(transactionErr) {
  68. console.log("There was some error in begining transaction");
  69. return;
  70. }
  71. addInventory(localConnection, inventoryName, chairArr, function(err, result) {
  72. if(err) {
  73. console.log("Err : "+err);
  74. return;
  75. }
  76. else {
  77. console.log("Successfully added an inventory");
  78. }
  79. });
  80. });
  81. });
  82.  
  83.  
  84. function addInventory(localConnection, inventoryName, chairArr, callback) {
  85. var sqlQuery = "INSERT INTO tb_inventory(name, added_on) VALUES( ?, NOW())";
  86. localConnection.query(sqlQuery, [inventoryName], function(err, result) {
  87. if(err) {
  88. return callback(err, null);
  89. }
  90. var inventoryId = result.insertId;
  91. var tasks = [];
  92. for(var i = 0; i < chairArr.length; i++) {
  93. tasks.push(addChair.bind(null, localConnection, inventoryId, chairArr[i]));
  94. }
  95. async.parallel(tasks, function(err, asyncRes) {
  96. if(err) {
  97. rollback(localConnection, function(rollErr, rollRes) {
  98. return callback(err, null);
  99. });
  100. }
  101. else {
  102. localConnection.commit(function(commitErr, commitRes) {
  103. console.log("transaction succeded");
  104. return callback(null, "Success");
  105. });
  106. }
  107. });
  108. });
  109. }
  110.  
  111. function addChair(localConnection, inventoryId, chairColor, callback) {
  112. var sqlQuery = "INSERT INTO tb_chairs(inventory_id, color) VALUES(?, ?)";
  113. localConnection.query(sqlQuery, [inventoryId, chairColor], function(err, result) {
  114. if(err) {
  115. return callback(err, null);
  116. }
  117. callback(null, result);
  118. });
  119. }
  120.  
  121. function rollback(localConnection, callback) {
  122. localConnection.rollback(function(err, result) {
  123. if(err) {
  124. console.log("ROLLBACK Failed");
  125. return callback(err, null);
  126. }
  127. console.log("ROLLBACK successful!");
  128. callback(null, result);
  129. });
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement