//由于nodejs版本更新很快,所以下面的代码需要随着nodejs版本的调整而调整。还不太稳定。 var mysql = require('mysql');//包含mysql驱动程序 var db = 'UseStudio_Blog'; //-----------------------连接数据库--------------------------------------------------- var connection = mysql.createConnection({ host: '192.168.65.18', user: 'root', password: 'usestudio-1' }); //----------------------指定数据库------------------------------------ connection.query('USE ' + db); //选取数据 exports.usselect = function (sql, callback) { //---------------------------------查询,并设置回调函数------------------------------ //mysql guid支持得不太好,由于Http是传输文本,定为char36 //如果定义为二进制binary16则设计到转义过程,消耗cpu,存储空间相对较小 connection.query(sql, function aa(err, results, fields) { if (err) { throw err; } if (results) { //在控制台输出使用的语句,暂时屏蔽 //console.log(results); //console.log(fields); //如果在这里关闭连接,当有第二个用户连接进来,会报错如下:“Error:cannot enqueue query ater invoking quit”,所以暂时屏蔽,以后再考虑关闭连接问题。 //应该和sql连接数有关。1个连接可以有多少用户可以连进来。超过多少用户开启第二个连接,这样可以算出用户数量。 //这个地方还涉及到如何查看mysql开启了多少个连接。每个连接支撑了多少用户,mysql一共可以同时开启多少个连接。 //connection.end();//关闭sql连接,何时需要关闭此连接? //结果给回调函数,和传统return有区别,需要特别注意。 callback(JSON.stringify(results)); //返回json数据 } else { callback('false'); } }); } //--------------------------------------------nodejs执行存储过程------------------------ exports.usproselect = function (r, callback) { connection.query("CALL PB_Select();", function (err, rows, fields) { if (err) { throw err; } //console.log(r); r=r.concat(JSON.stringify(rows)); // //console.log(JSON.stringify(rows)); callback(r); }); } exports.aaaaaa = function (callback) { //exports.usproselect("CALL PB_Select();", function (results) { _replys.concat(results); }); connection.query("CALL PB_Select();", function (err, rows, fields) { if (err) { throw err; } exports.usproselect(JSON.stringify(rows), callback); }); } //------------------------------------创建数据库------------------------------- /*connection.query('CREATE DATABASE '+TEST_DATABASE, function(err) { if (err && err.number != mysql.ERROR_DB_CREATE_EXISTS) { throw err; } });*/ //不指定回调函数,如果出错,则体现为客户端错误 //connection.query('USE '+TEST_DATABASE); //-------------------------------------创建表格,插入数据--------------------------------- /*connection.query( 'CREATE TABLE '+TEST_TABLE+ '(id INT(11) AUTO_INCREMENT, '+ 'name VARCHAR(255), '+ 'PRIMARY KEY (id))' );*/ //-----------------------------------插入数据--------------------------------------- /*connection.query( 'INSERT INTO '+TEST_TABLE+' '+ 'SET name = ?', ['nodejs1'] ); var query = connection.query( 'INSERT INTO '+TEST_TABLE+' '+ 'SET name = ?', ['nodejs2'] );*/