123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- /**
- * SequelizeMySQLController
- *
- * @description :: Server-side logic for managing Database Queries
- */
- var h = require('../services/helper')
- var Promise = require('bluebird')
- var Sequelize = require('sequelize')
- var sequelize = new Sequelize(
- 'hello_world', 'benchmarkdbuser', 'benchmarkdbpass',
- {
- host: '127.0.0.1',
- dialect: 'mysql',
- pool: {
- max: 5000,
- min: 0,
- idle: 5000
- },
- // hide the SQL queries being run
- logging: false
- })
- var Worlds = sequelize.define('World', {
- id: Sequelize.INTEGER,
- randomNumber: Sequelize.INTEGER
- },
- {
- // prevents sequelize from assuming the table is called 'Worlds'
- freezeTableName: true,
- timestamps: false
- })
- var Fortunes = sequelize.define('Fortune', {
- id: Sequelize.INTEGER,
- message: Sequelize.STRING
- },
- {
- // prevents sequelize from assuming the table is called 'Fortunes'
- freezeTableName: true,
- timestamps: false
- })
- var randomWorldPromise = function() {
- var promise = Worlds
- .findOne({
- where: { id: h.randomTfbNumber() }
- })
- .then(function (world) {
- return world
- })
- .catch(function (err) {
- process.exit(1)
- })
- return promise
- }
- var updateWorld = function(world) {
- var promise = Worlds
- .update(
- { randomNumber: world.randomNumber },
- { where: { id: world.id } }
- )
- .then(function (results) {
- return world
- })
- .catch(function (err) {
- process.exit(1)
- })
- return promise
- }
- module.exports = {
- /**
- * Test 2: Single Database Query
- */
- Single: function(req, res) {
- randomWorldPromise()
- .then(function (world) {
- res.json(world)
- })
- },
- /**
- * Test 3: Multiple Database Query
- */
- Multiple: function(req, res) {
- var queries = h.getQueries(req)
- var toRun = []
- for (var i = 0; i < queries; i++) {
- toRun.push(randomWorldPromise());
- }
- Promise
- .all(toRun)
- .then(function (worlds) {
- res.json(worlds)
- })
- },
- /**
- * Test 4: Fortunes
- */
- Fortunes: function(req, res) {
- Fortunes
- .findAll()
- .then(function (fortunes) {
- fortunes.push(h.ADDITIONAL_FORTUNE)
- fortunes.sort(function (a, b) {
- return a.message.localeCompare(b.message)
- })
- res.render('fortunes', { 'fortunes': fortunes })
- })
- .catch(function (err) {
- process.exit(1)
- })
- },
- /**
- * Test 5: Database Updates
- */
- Updates: function(req, res) {
- var queries = h.getQueries(req);
- var worldPromises = [];
- for (var i = 0; i < queries; i++) {
- worldPromises.push(randomWorldPromise())
- }
- Promise
- .all(worldPromises)
- .map(function (world) {
- return updateWorld(world)
- })
- .then(function (updated) {
- res.json(updated)
- })
- .catch(function (err) {
- process.exit(1)
- })
- }
-
- };
|