DatabaseQueryController.js 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. /**
  2. * DatabaseQueryController
  3. *
  4. * @description :: Server-side logic for managing Database Queries
  5. */
  6. var Sequelize = require('sequelize')
  7. var sequelize = new Sequelize(
  8. 'hello_world', 'benchmarkdbuser', 'benchmarkdbpass',
  9. {
  10. host: '127.0.0.1',
  11. dialect: 'mysql',
  12. pool: {
  13. max: 5000,
  14. min: 0,
  15. idle: 5000
  16. },
  17. logging: true
  18. });
  19. var World = sequelize.define('World', {
  20. id: Sequelize.INTEGER,
  21. randomNumber: Sequelize.INTEGER
  22. },
  23. {
  24. // prevents sequelize from assuming the table is called 'Worlds'
  25. freezeTableName: true,
  26. timestamps: false,
  27. })
  28. var randomWorldId = function() {
  29. return Math.floor(Math.random() * 10000) + 1;
  30. }
  31. var worldQuery = function(callback) {
  32. World.findOne({
  33. where: { id: randomWorldId() }
  34. }).complete(callback)
  35. }
  36. module.exports = {
  37. /**
  38. * Test 2: Single Database Query
  39. */
  40. single: function (req, res) {
  41. World.findOne({
  42. where: { id: randomWorldId() }
  43. }).then(function(results) {
  44. return res.json(results.get());
  45. })
  46. },
  47. /**
  48. * Test 3: Multiple Database Query
  49. */
  50. multiple: function (req, res) {
  51. var queries = req.param('queries');
  52. var worlds = [];
  53. queries = Math.min(Math.max(queries, 1), 500) || 1;
  54. for (var i = 0; i < queries; i++) {
  55. worlds.push(worldQuery)
  56. }
  57. async.parallel(worlds, function(err, results) {
  58. // if (queries == 1) {
  59. // results = results[0];
  60. // }
  61. res.json(results);
  62. });
  63. }
  64. };