us.db.js 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. //由于nodejs版本更新很快,所以下面的代码需要随着nodejs版本的调整而调整。还不太稳定。
  2. var mysql = require('mysql');//包含mysql驱动程序
  3. var db = 'UseStudio_Blog';
  4. //-----------------------连接数据库---------------------------------------------------
  5. var connection = mysql.createConnection({ host: '192.168.65.18', user: 'root', password: 'usestudio-1' });
  6. //----------------------指定数据库------------------------------------
  7. connection.query('USE ' + db);
  8. //选取数据
  9. exports.usselect = function (sql, callback) {
  10. //---------------------------------查询,并设置回调函数------------------------------
  11. //mysql guid支持得不太好,由于Http是传输文本,定为char36
  12. //如果定义为二进制binary16则设计到转义过程,消耗cpu,存储空间相对较小
  13. connection.query(sql, function aa(err, results, fields) {
  14. if (err) { throw err; }
  15. if (results) {
  16. //在控制台输出使用的语句,暂时屏蔽 //console.log(results); //console.log(fields);
  17. //如果在这里关闭连接,当有第二个用户连接进来,会报错如下:“Error:cannot enqueue query ater invoking quit”,所以暂时屏蔽,以后再考虑关闭连接问题。
  18. //应该和sql连接数有关。1个连接可以有多少用户可以连进来。超过多少用户开启第二个连接,这样可以算出用户数量。
  19. //这个地方还涉及到如何查看mysql开启了多少个连接。每个连接支撑了多少用户,mysql一共可以同时开启多少个连接。
  20. //connection.end();//关闭sql连接,何时需要关闭此连接?
  21. //结果给回调函数,和传统return有区别,需要特别注意。
  22. callback(JSON.stringify(results)); //返回json数据
  23. }
  24. else { callback('false'); }
  25. });
  26. }
  27. //--------------------------------------------nodejs执行存储过程------------------------
  28. exports.usproselect = function (r, callback) {
  29. connection.query("CALL PB_Select();", function (err, rows, fields) {
  30. if (err) { throw err; }
  31. //console.log(r);
  32. r=r.concat(JSON.stringify(rows)); //
  33. //console.log(JSON.stringify(rows));
  34. callback(r);
  35. });
  36. }
  37. exports.aaaaaa = function (callback) {
  38. //exports.usproselect("CALL PB_Select();", function (results) { _replys.concat(results); });
  39. connection.query("CALL PB_Select();", function (err, rows, fields) {
  40. if (err) { throw err; }
  41. exports.usproselect(JSON.stringify(rows), callback);
  42. });
  43. }
  44. //------------------------------------创建数据库-------------------------------
  45. /*connection.query('CREATE DATABASE '+TEST_DATABASE, function(err) {
  46. if (err && err.number != mysql.ERROR_DB_CREATE_EXISTS) {
  47. throw err;
  48. }
  49. });*/
  50. //不指定回调函数,如果出错,则体现为客户端错误
  51. //connection.query('USE '+TEST_DATABASE);
  52. //-------------------------------------创建表格,插入数据---------------------------------
  53. /*connection.query(
  54. 'CREATE TABLE '+TEST_TABLE+
  55. '(id INT(11) AUTO_INCREMENT, '+
  56. 'name VARCHAR(255), '+
  57. 'PRIMARY KEY (id))'
  58. );*/
  59. //-----------------------------------插入数据---------------------------------------
  60. /*connection.query(
  61. 'INSERT INTO '+TEST_TABLE+' '+
  62. 'SET name = ?',
  63. ['nodejs1']
  64. );
  65. var query = connection.query(
  66. 'INSERT INTO '+TEST_TABLE+' '+
  67. 'SET name = ?',
  68. ['nodejs2']
  69. );*/