当前位置:Gxlcms > 数据库问题 > node封装mysql模块

node封装mysql模块

时间:2021-07-01 10:21:17 帮助过:25人阅读

  1. ‘use strict‘<span style="color: #000000;">;
  2. const mysql </span>= require(‘mysql‘<span style="color: #000000;">);
  3. </span><span style="color: #0000ff;">var</span> local = <span style="color: #0000ff;">true</span>
  4. <span style="color: #0000ff;">var</span><span style="color: #000000;"> pool
  5. </span><span style="color: #008000;">//</span><span style="color: #008000;"> 创建连接池</span>
  6. <span style="color: #0000ff;">if</span><span style="color: #000000;"> (local) {
  7. pool </span>=<span style="color: #000000;"> mysql.createPool({
  8. connectionLimit: </span>50<span style="color: #000000;">,
  9. host: </span>‘localhost‘<span style="color: #000000;">,
  10. user: </span>‘root‘<span style="color: #000000;">,
  11. password: </span>‘root‘<span style="color: #000000;">,
  12. database: </span>‘crawl‘<span style="color: #000000;">,
  13. multipleStatements: </span><span style="color: #0000ff;">true</span> <span style="color: #008000;">//</span><span style="color: #008000;">是否允许执行多条sql语句</span>
  14. <span style="color: #000000;"> });
  15. }
  16. </span><span style="color: #008000;">//</span><span style="color: #008000;">将结果已对象数组返回</span>
  17. <span style="color: #0000ff;">var</span> row = (sql, ...params) =><span style="color: #000000;"> {
  18. </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">new</span> Promise(<span style="color: #0000ff;">function</span><span style="color: #000000;"> (resolve, reject) {
  19. pool.getConnection(</span><span style="color: #0000ff;">function</span><span style="color: #000000;"> (err, connection) {
  20. </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (err) {
  21. reject(err);
  22. </span><span style="color: #0000ff;">return</span><span style="color: #000000;">;
  23. }
  24. connection.query(sql, params, </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> (error, res) {
  25. connection.release();
  26. </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (error) {
  27. reject(error);
  28. </span><span style="color: #0000ff;">return</span><span style="color: #000000;">;
  29. }
  30. resolve(res);
  31. });
  32. });
  33. });
  34. };
  35. </span><span style="color: #008000;">//</span><span style="color: #008000;">返回一个对象</span>
  36. <span style="color: #0000ff;">var</span> first = (sql, ...params) =><span style="color: #000000;"> {
  37. </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">new</span> Promise(<span style="color: #0000ff;">function</span><span style="color: #000000;"> (resolve, reject) {
  38. pool.getConnection(</span><span style="color: #0000ff;">function</span><span style="color: #000000;"> (err, connection) {
  39. </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (err) {
  40. reject(err);
  41. </span><span style="color: #0000ff;">return</span><span style="color: #000000;">;
  42. }
  43. connection.query(sql, params, </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> (error, res) {
  44. connection.release();
  45. </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (error) {
  46. reject(error);
  47. </span><span style="color: #0000ff;">return</span><span style="color: #000000;">;
  48. }
  49. resolve(res[</span>0] || <span style="color: #0000ff;">null</span><span style="color: #000000;">);
  50. });
  51. });
  52. });
  53. };
  54. </span><span style="color: #008000;">//</span><span style="color: #008000;">返回单个查询结果</span>
  55. <span style="color: #0000ff;">var</span> single = (sql, ...params) =><span style="color: #000000;"> {
  56. </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">new</span> Promise(<span style="color: #0000ff;">function</span><span style="color: #000000;"> (resolve, reject) {
  57. pool.getConnection(</span><span style="color: #0000ff;">function</span><span style="color: #000000;"> (err, connection) {
  58. </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (err) {
  59. reject(err);
  60. </span><span style="color: #0000ff;">return</span><span style="color: #000000;">;
  61. }
  62. connection.query(sql, params, </span><span style="color: #0000ff;">function</span><span style="color: #000000;"> (error, res) {
  63. connection.release();
  64. </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (error) {
  65. reject(error);
  66. </span><span style="color: #0000ff;">return</span><span style="color: #000000;">;
  67. }
  68. </span><span style="color: #0000ff;">for</span> (let i <span style="color: #0000ff;">in</span> res[0<span style="color: #000000;">]) {
  69. resolve(res[</span>0][i] || <span style="color: #0000ff;">null</span><span style="color: #000000;">);
  70. </span><span style="color: #0000ff;">return</span><span style="color: #000000;">;
  71. }
  72. resolve(</span><span style="color: #0000ff;">null</span><span style="color: #000000;">);
  73. });
  74. });
  75. });
  76. }
  77. </span><span style="color: #008000;">//</span><span style="color: #008000;">执行代码,返回执行结果</span>
  78. <span style="color: #0000ff;">var</span> execute = (sql, ...params) =><span style="color: #000000;"> {
  79. </span><span style="color: #0000ff;">return</span> <span style="color: #0000ff;">new</span> Promise(<span style="color: #0000ff;">function</span><span style="color: #000000;"> (resolve, reject) {
  80. </span><span style="color: #008000;">//</span><span style="color: #008000;"> 获取连接</span>
  81. pool.getConnection(<span style="color: #0000ff;">function</span><span style="color: #000000;"> (err, connection) {
  82. </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (err) {
  83. reject(err);
  84. </span><span style="color: #0000ff;">return</span><span style="color: #000000;">;
  85. }
  86. </span><span style="color: #008000;">//</span><span style="color: #008000;"> 操作数据库</span>
  87. connection.query(sql, params, <span style="color: #0000ff;">function</span><span style="color: #000000;"> (error, res) {
  88. </span><span style="color: #008000;">//</span><span style="color: #008000;"> 释放</span>
  89. <span style="color: #000000;"> connection.release();
  90. </span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (error) {
  91. reject(error);
  92. </span><span style="color: #0000ff;">return</span><span style="color: #000000;">;
  93. }
  94. resolve(res);
  95. });
  96. });
  97. });
  98. }
  99. </span><span style="color: #008000;">//</span><span style="color: #008000;">模块导出</span>
  100. module.exports =<span style="color: #000000;"> {
  101. ROW: row,
  102. FIRST: first,
  103. SINGLE: single,
  104. EXECUTE: execute
  105. }
  106. </span><span style="color: #008000;">/*</span><span style="color: #008000;">连接mysql</span><span style="color: #008000;">*/</span>
  107. <span style="color: #0000ff;">function</span><span style="color: #000000;"> connectToMysql() {
  108. </span><span style="color: #0000ff;">var</span> connection =<span style="color: #000000;"> mysql.createConnection({
  109. host: </span>‘‘<span style="color: #000000;">,
  110. user: </span>‘‘<span style="color: #000000;">,
  111. password: </span>‘‘<span style="color: #000000;">,
  112. database: </span>‘‘<span style="color: #000000;">
  113. });
  114. connection.connect();
  115. </span><span style="color: #008000;">//</span><span style="color: #008000;">查询</span>
  116. connection.query(‘SELECT * FROM user;‘, <span style="color: #0000ff;">function</span><span style="color: #000000;"> (err, rows, fields) {
  117. </span><span style="color: #0000ff;">if</span> (err) <span style="color: #0000ff;">throw</span><span style="color: #000000;"> err;
  118. console.log(</span>‘The solution is: ‘, rows[0<span style="color: #000000;">]);
  119. });
  120. </span><span style="color: #008000;">//</span><span style="color: #008000;">关闭连接</span>
  121. <span style="color: #000000;"> connection.end();
  122. }</span>

 

node封装mysql模块

标签:导出   rom   node   UI   nec   null   实现   tip   cat   

人气教程排行