123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- const h = require('../helper');
- const Sequelize = require('sequelize');
- const sequelize = new Sequelize('hello_world', 'benchmarkdbuser', 'benchmarkdbpass', {
- host: 'tfb-database',
- dialect: 'mysql',
- logging: false
- });
- const Worlds = sequelize.define('World', {
- id: {
- type: 'Sequelize.INTEGER',
- primaryKey: true
- },
- randomNumber: { type: 'Sequelize.INTEGER' }
- }, {
- timestamps: false,
- freezeTableName: true
- });
- const Fortunes = sequelize.define('Fortune', {
- id: {
- type: 'Sequelize.INTEGER',
- primaryKey: true
- },
- message: { type: 'Sequelize.STRING' }
- }, {
- timestamps: false,
- freezeTableName: true
- });
- const randomWorldPromise = () => {
- return Worlds.findOne({
- where: { id: h.randomTfbNumber() }
- }).then((results) => {
- return results;
- }).catch((err) => {
- process.exit(1);
- });
- };
- module.exports = {
- SingleQuery: (req, res) => {
- randomWorldPromise().then((world) => {
- h.addTfbHeaders(res, 'json');
- res.end(JSON.stringify(world));
- });
- },
- MultipleQueries: (queries, req, res) => {
- const worldPromises = [];
- for (let i = 0; i < queries; i++) {
- worldPromises.push(randomWorldPromise());
- }
- Promise.all(worldPromises).then((worlds) => {
- h.addTfbHeaders(res, 'json');
- res.end(JSON.stringify(worlds));
- });
- },
- Fortunes: (req, res) => {
- Fortunes.findAll().then((fortunes) => {
- fortunes.push(h.additionalFortune());
- fortunes.sort((a, b) => {
- return a.message.localeCompare(b.message);
- });
- h.addTfbHeaders(res, 'html');
- res.end(h.fortunesTemplate({
- fortunes: fortunes
- }));
- }).catch((err) => {
- console.log(err.stack);
- process.exit(1);
- });
- },
- Updates: (queries, req, res) => {
- const worldPromises = [];
- for (let i = 0; i < queries; i++) {
- worldPromises.push(randomWorldPromise());
- }
- const worldUpdate = (world) => {
- world.randomNumber = h.randomTfbNumber();
- return Worlds.update({
- randomNumber: world.randomNumber
- },
- {
- where: { id: world.id }
- }).then((results) => {
- return world;
- }).catch((err) => {
- process.exit(1);
- });
- };
- Promise.all(worldPromises).then((worlds) => {
- const updates = worlds.map((e) => worldUpdate(e));
- Promise.all(updates).then((updated) => {
- h.addTfbHeaders(res, 'json');
- res.end(JSON.stringify(updated));
- });
- });
- }
- };
|