123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- // Connects to MySQL using the sequelize driver
- // Handles related routes
- var h = require('../helper');
- var Promise = require('bluebird');
- var Sequelize = require('sequelize');
- var sequelize = new Sequelize('hello_world', 'benchmarkdbuser', 'benchmarkdbpass', {
- host: '127.0.0.1',
- dialect: 'mysql',
- logging: false
- });
- var Worlds = sequelize.define('World', {
- id: { type: 'Sequelize.INTEGER' },
- randomNumber: { type: 'Sequelize.INTEGER' }
- }, {
- timestamps: false,
- freezeTableName: true
- });
- var Fortunes = sequelize.define('Fortune', {
- id: { type: 'Sequelize.INTEGER' },
- message: { type: 'Sequelize.STRING' }
- }, {
- timestamps: false,
- freezeTableName: true
- });
- var randomWorldPromise = function() {
- return Worlds.findOne({
- where: { id: h.randomTfbNumber() }
- }).then(function (results) {
- return results;
- }).catch(function (err) {
- process.exit(1);
- });
- }
- module.exports = {
- SingleQuery: function (req, reply) {
- randomWorldPromise().then(function (world) {
- reply(world)
- .header('Server', 'hapi');
- })
- },
- MultipleQueries: function (req, reply) {
- var queries = h.getQueries(req);
- var worldPromises = [];
- for (var i = 0; i < queries; i++) {
- worldPromises.push(randomWorldPromise());
- }
- Promise.all(worldPromises).then(function (worlds) {
- reply(worlds)
- .header('Server', 'hapi');
- });
- },
- Fortunes: function (req, reply) {
- Fortunes.findAll().then(function (fortunes) {
- fortunes.push(h.ADDITIONAL_FORTUNE);
- fortunes.sort(function (a, b) {
- return a.message.localeCompare(b.message);
- });
- reply.view('fortunes', {
- fortunes: fortunes
- })
- .header('Content-Type', 'text/html')
- .header('Server', 'hapi');
- }).catch(function (err) {
- process.exit(1);
- });
- },
- Updates: function (req, reply) {
- var queries = h.getQueries(req);
- var worldPromises = [];
- for (var i = 0; i < queries; i++) {
- worldPromises.push(randomWorldPromise());
- }
- var worldUpdate = function (world) {
- world.randomNumber = h.randomTfbNumber();
- return Worlds.update(
- { randomNumber: world.randomNumber },
- { where: { id: world.id } }
- )
- .then(function (results) {
- return world;
- })
- .catch(function (err) {
- process.exit(1);
- });
- }
- Promise
- .all(worldPromises)
- .map(function (world) {
- return worldUpdate(world);
- })
- .then(function (updated) {
- reply(updated)
- .header('Server', 'hapi')
- })
- .catch(function (e) {
- process.exit(1);
- });
- }
- }
|