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