dbUtils.js 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. //https://github.com/mysqljs/mysql#readme
  2. var mysql = require('mysql');
  3. var bcrypt = require('bcryptjs');
  4. //获取数据库配置
  5. var config = require('../configs/config').mysql_dev;
  6. //使用连接池
  7. var pool = mysql.createPool(config);
  8. //SESSION_SECRET
  9. var sessionSECRET = process.env.SESSION_SECRET || "faFJDSLNFFJLsEknnqWSDlweifsNIW";
  10. console.log(sessionSECRET);
  11. //公共连接设置
  12. var commonFormat = function(callback) {
  13. pool.getConnection(function(err, connection) {
  14. //console.log(callback);
  15. //自定义参数匹配设置
  16. connection.config.queryFormat = function(query, values) {
  17. if (!values) return query;
  18. return query.replace(/\:(\w+)/g, function(txt, key) {
  19. if (values.hasOwnProperty(key)) {
  20. return this.escape(values[key]);
  21. }
  22. return txt;
  23. }.bind(this));
  24. };
  25. callback && callback(err, connection);
  26. });
  27. };
  28. //存储
  29. module.exports = {
  30. //添加/修改数据
  31. set: function(params) {
  32. var password = '12345' + sessionSECRET;
  33. var salt = bcrypt.genSaltSync(10);
  34. var hash = bcrypt.hashSync(password, salt);
  35. console.log(hash);
  36. console.log(bcrypt.compareSync(password + 'x', hash));
  37. // var sql = 'select 1+1 as test';
  38. // pool.query(sql, function(err, rows, fields) {
  39. // console.log(err);
  40. // console.log(rows);
  41. // console.log(fields);
  42. // });
  43. var sql = 'select MD5("123456") as calc';
  44. // commonFormat(function(err, connection) {
  45. // connection.query(sql, { id: 1 + 1 }, function(err, rows) {
  46. // //console.log(err);
  47. // console.log(rows);
  48. // console.log(rows.length)
  49. // });
  50. // });
  51. },
  52. //获取数据
  53. get: function(key) {
  54. },
  55. //删除数据
  56. del: function(key) {
  57. },
  58. //事务
  59. transaction: function(params) {
  60. commonFormat(function(err, connection) {
  61. //Transaction Begin
  62. connection.beginTransaction(function(err) {
  63. if (err) throw err;
  64. var keys = [];
  65. var vals = [];
  66. connection.query('insert into :table(' + keys.join(',') + ') values(' + vals.join(',') + ') ', params, function(err, result) {
  67. if (err) {
  68. return connection.rollback(function() {
  69. throw err;
  70. });
  71. }
  72. var insertId = result.insertId;
  73. //Transaction Next
  74. connection.query('insert into :table(' + keys.join(',') + ') values(' + vals.join(',') + ')', params, function(err, result) {
  75. if (err) {
  76. return connection.rollback(function() {
  77. throw err;
  78. });
  79. }
  80. //Transaction Commit
  81. connection.commit(function(err) {
  82. if (err) {
  83. return connection.rollback(function() {
  84. throw err;
  85. });
  86. }
  87. console.log('Transaction Success!');
  88. });
  89. });
  90. });
  91. });
  92. });
  93. }
  94. };