dbUtil.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. "use strict";
  2. var configFile = require('../include/commons').CONFIG_FILE;
  3. var config = require('../resources/config/' + configFile);
  4. var log = require('./log');
  5. /**
  6. * 数据库查询工具,使用数据库连接池获取连接,执行查询,之后将连接返回连接池。
  7. */
  8. exports.execQuery = function (pool, options) {
  9. if(config.showSQL) log.info(options.sql);
  10. pool.getConnection(function (err, connection) {
  11. // 查询参数
  12. var sql = options['sql'];
  13. var args = options['args'];
  14. var handler = options['handler'];
  15. if (err) {
  16. log.error('Database - get connection failed, ' + err);
  17. handler(err, 'db-getConnection');
  18. return;
  19. }
  20. // 执行查询
  21. if (args) {
  22. var query = connection.query(sql, args, function (err, results) {
  23. if (err) {
  24. log.error('Database - execute query failed, ' + err);
  25. handler(err, results);
  26. return;
  27. }
  28. // 处理结果
  29. handler(err, results);
  30. });
  31. } else {
  32. var query = connection.query(sql, function (err, results) {
  33. if (err) {
  34. log.error('Database - execute query failed, ' + err);
  35. handler(err, results);
  36. return;
  37. }
  38. // 处理结果
  39. handler(err, results);
  40. });
  41. }
  42. // 返回连接池
  43. connection.release(function (err) {
  44. if (error) {
  45. log.error('Database - release connection failed, ' + err);
  46. }
  47. });
  48. });
  49. };