mysql.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. var mysql = require('mysql'); //包含mysql驱动程序
  2. //----------------------------------mysql 连接池--------------------------------------
  3. //连接数据库改成 封装
  4. function mysqlconnet(ho, db) {
  5. var pool = mysql.createPool({
  6. connectionLimit: 0, //是个连接后重新再建立连接?为0则永远不丢失?
  7. host: ho, //做成参数形式
  8. user: "root",
  9. password: "usestudio-1",
  10. database: db,
  11. port: 3306
  12. });
  13. return pool;
  14. }
  15. //----------------------------------统一执行mysql存储过程函数-----------------------------
  16. exports.usselect = function (pArr, callback) {
  17. var _pro, i; //定义循环变量,对字符串解密
  18. for (i = 0; i < pArr.length; i++) { pArr[i] = decodeURIComponent(pArr[i]); } //解密中文字符串。
  19. var _pro = "";
  20. //如果前台没有传参数过来,则需进这里
  21. if (pArr[3] == undefined) {
  22. _pro = "CALL" + " " + pArr[2] + "()";
  23. }
  24. else { //否则有参数
  25. _pro = "CALL " + "" + pArr[2] + "('"; //命令拼凑
  26. for (i = 3; i < pArr.length; i++) { _pro += pArr[i]; if (i < pArr.length - 1) _pro += "','"; } //拼凑参数
  27. _pro += "')"; //拼凑结束。
  28. }
  29. console.log("拼凑的MySQl语句为:" + _pro);
  30. var pool = mysqlconnet(pArr[0], pArr[1]);
  31. pool.getConnection(function (err, connection) {
  32. console.log("连接池:" + err);
  33. //以后还需要加上断线重连问题
  34. if (err) { console.log("连接池:" + err); callback('false'); }
  35. else {
  36. connection.query(_pro, function (err, results, fields) {
  37. connection.release(); //释放连接池,使用此方法需要更新nodejs的mysql模块: npm install mysql@2.0.0-alpha9
  38. if (err) { console.log("MySql查询语句出错:" + err); }
  39. else if (results) {
  40. callback(JSON.stringify(results)); //返回json数据
  41. console.log("MySql执行成功!");
  42. }
  43. else { callback('false'); }
  44. });
  45. }
  46. });
  47. }