Parcourir la source

JavaScript/nodejs fix (#2549)

Nate il y a 8 ans
Parent
commit
0157274070

+ 26 - 28
frameworks/JavaScript/nodejs/handlers/mongodb-raw.js

@@ -1,11 +1,11 @@
-var h = require('../helper');
-var async = require('async');
-var MongoClient = require('mongodb').MongoClient;
-var collections = {
+const h = require('../helper');
+const async = require('async');
+const MongoClient = require('mongodb').MongoClient;
+const collections = {
   World: null,
   Fortune: null
 };
-MongoClient.connect('mongodb://127.0.0.1/hello_world?maxPoolSize=5', function (err, db) {
+MongoClient.connect('mongodb://TFB-database/hello_world?maxPoolSize=5', (err, db) => {
   // do nothing if there is err connecting to db
 
   collections.World = db.collection('world');
@@ -13,37 +13,35 @@ MongoClient.connect('mongodb://127.0.0.1/hello_world?maxPoolSize=5', function (e
 });
 
 
-function mongodbRandomWorld(callback) {
+const mongodbRandomWorld = (callback) => {
   collections.World.findOne({
     id: h.randomTfbNumber()
-  }, function (err, world) {
+  }, (err, world) => {
     world._id = undefined; // remove _id from query response
     callback(err, world);
   });
 }
 
-function mongodbGetAllFortunes(callback) {
-  collections.Fortune.find().toArray(function (err, fortunes) {
+const mongodbGetAllFortunes = (callback) => {
+  collections.Fortune.find().toArray((err, fortunes) => {
     callback(err, fortunes);
   })
 }
 
-function mongodbDriverUpdateQuery(callback) {
-  collections.World.findAndModify({
-    id: h.randomTfbNumber()
-  }, [['_id','asc']], {
-    $set: {randomNumber: h.randomTfbNumber()}
-  }, {}, function (err, world) {
-    world.value._id = undefined; // remove _id from query response
-    callback(err, world.value);
+const mongodbDriverUpdateQuery = (callback) => {
+  collections.World.findOne({id: h.randomTfbNumber()}, (err, world) => {
+    world.randomnumber = h.randomTfbNumber();
+    collections.World.update({id: world.id}, world, (err, updated) => { 
+      callback(err, { id: world.id, randomnumber: world.randomnumber } );
+    });
   });
 }
 
 
 module.exports = {
 
-  SingleQuery: function (req, res) {
-    mongodbRandomWorld(function (err, result) {
+  SingleQuery: (req, res) => {
+    mongodbRandomWorld((err, result) => {
       if (err) { return process.exit(1) }
 
       h.addTfbHeaders(res, 'json');
@@ -51,10 +49,10 @@ module.exports = {
     });
   },
 
-  MultipleQueries: function (queries, req, res) {
-    var queryFunctions = h.fillArray(mongodbRandomWorld, queries);
+  MultipleQueries: (queries, req, res) => {
+    const queryFunctions = h.fillArray(mongodbRandomWorld, queries);
 
-    async.parallel(queryFunctions, function (err, results) {
+    async.parallel(queryFunctions, (err, results) => {
       if (err) { return process.exit(1) }
 
       h.addTfbHeaders(res, 'json');
@@ -62,8 +60,8 @@ module.exports = {
     });
   },
 
-  Fortunes: function (req, res) {
-    mongodbGetAllFortunes(function (err, fortunes) {
+  Fortunes: (req, res) => {
+    mongodbGetAllFortunes((err, fortunes) => {
       if (err) { return process.exit(1) }
 
       fortunes.push(h.ADDITIONAL_FORTUNE);
@@ -77,10 +75,10 @@ module.exports = {
     });
   },
 
-  Updates: function (queries, req, res) {
-    var queryFunctions = h.fillArray(mongodbDriverUpdateQuery, queries);
+  Updates: (queries, req, res) => {
+    const queryFunctions = h.fillArray(mongodbDriverUpdateQuery, queries);
 
-    async.parallel(queryFunctions, function (err, results) {
+    async.parallel(queryFunctions, (err, results) => {
       if (err) { return process.exit(1) }
 
       h.addTfbHeaders(res, 'json');
@@ -88,4 +86,4 @@ module.exports = {
     });
   }
 
-};
+};

+ 27 - 27
frameworks/JavaScript/nodejs/handlers/mongoose.js

@@ -1,40 +1,40 @@
-var h = require('../helper');
-var async = require('async');
-var Mongoose = require('mongoose');
-var connection = Mongoose.connect('mongodb://127.0.0.1/hello_world')
+const h = require('../helper');
+const async = require('async');
+const Mongoose = require('mongoose');
+const connection = Mongoose.connect('mongodb://TFB-database/hello_world')
 
 // Mongoose Setup
-var WorldSchema = new Mongoose.Schema({
+const WorldSchema = new Mongoose.Schema({
     id          : Number,
     randomNumber: Number
   }, {
     collection: 'world'
   });
-var FortuneSchema = new Mongoose.Schema({
+const FortuneSchema = new Mongoose.Schema({
     id:      Number,
     message: String
   }, {
     collection: 'fortune'
   });
 
-var Worlds = connection.model('World', WorldSchema);
-var Fortunes = connection.model('Fortune', FortuneSchema);
+const Worlds = connection.model('World', WorldSchema);
+const Fortunes = connection.model('Fortune', FortuneSchema);
 
-function mongooseRandomWorld(callback) {
+const mongooseRandomWorld = (callback) => {
   Worlds.findOne({
     id: h.randomTfbNumber()
   }).exec(callback);
 }
 
-function mongooseGetAllFortunes(callback) {
+const mongooseGetAllFortunes = (callback) => {
   Fortunes.find({})
     .exec(callback);
 }
 
 module.exports = {
 
-  SingleQuery: function (req, res) {
-    mongooseRandomWorld(function (err, result) {
+  SingleQuery: (req, res) => {
+    mongooseRandomWorld((err, result) => {
       if (err) { return process.exit(1); }
 
       h.addTfbHeaders(res, 'json');
@@ -42,10 +42,10 @@ module.exports = {
     })
   },
 
-  MultipleQueries: function (queries, req, res) {
-    var queryFunctions = h.fillArray(mongooseRandomWorld, queries)
+  MultipleQueries: (queries, req, res) => {
+    const queryFunctions = h.fillArray(mongooseRandomWorld, queries)
 
-    async.parallel(queryFunctions, function (err, results) {
+    async.parallel(queryFunctions, (err, results) => {
       if (err) { return process.exit(1); }
 
       h.addTfbHeaders(res, 'json');
@@ -53,12 +53,12 @@ module.exports = {
     });
   },
 
-  Fortunes: function (req, res) {
-    mongooseGetAllFortunes(function (err, fortunes) {
+  Fortunes: (req, res) => {
+    mongooseGetAllFortunes((err, fortunes) => {
       if (err) { return process.exit(1); }
 
       fortunes.push(h.ADDITIONAL_FORTUNE);
-      fortunes.sort(function (a, b) {
+      fortunes.sort((a, b) => {
         return a.message.localeCompare(b.message);
       });
       h.addTfbHeaders(res, 'html');
@@ -68,17 +68,17 @@ module.exports = {
     });
   },
 
-  Updates: function (queries, req, res) {
-    var selectFunctions = h.fillArray(mongooseRandomWorld, queries);
+  Updates: (queries, req, res) => {
+    const selectFunctions = h.fillArray(mongooseRandomWorld, queries);
 
-    async.parallel(selectFunctions, function (err, worlds) {
+    async.parallel(selectFunctions, (err, worlds) => {
       if (err) { return process.exit(1); }
 
-      var updateFunctions = [];
+      const updateFunctions = [];
 
-      for (var i = 0; i < queries; i++) {
-        (function (i) {
-          updateFunctions.push(function (callback) {
+      for (let i = 0; i < queries; i++) {
+        ((i) => {
+          updateFunctions.push((callback) => {
             worlds[i].randomNumber = h.randomTfbNumber();
             Worlds.update({
               id: worlds[i].id
@@ -89,7 +89,7 @@ module.exports = {
         })(i);
       }
 
-      async.parallel(updateFunctions, function (err, results) {
+      async.parallel(updateFunctions, (err, results) => {
         if (err) { return process.exit(1); }
 
         h.addTfbHeaders(res, 'json');
@@ -100,4 +100,4 @@ module.exports = {
     });
   }
 
-};
+};

+ 27 - 27
frameworks/JavaScript/nodejs/handlers/mysql-raw.js

@@ -1,8 +1,8 @@
-var h = require('../helper');
-var async = require('async');
-var mysql = require('mysql');
-var connection = mysql.createConnection({
-  host     : '127.0.0.1',
+const h = require('../helper');
+const async = require('async');
+const mysql = require('mysql');
+const connection = mysql.createConnection({
+  host     : 'TFB-database',
   user     : 'benchmarkdbuser',
   password : 'benchmarkdbpass',
   database : 'hello_world'
@@ -10,10 +10,10 @@ var connection = mysql.createConnection({
 
 connection.connect();
 
-var queries = {
+const queries = {
   RANDOM_WORLD: "SELECT * FROM world WHERE id = " + h.randomTfbNumber(),
   ALL_FORTUNES: "SELECT * FROM fortune",
-  UPDATE_WORLD: function (rows) {
+  UPDATE_WORLD: (rows) => {
     return [
       "UPDATE world SET randomNumber = ", rows[0].randomNumber,
       " WHERE id = ", rows[0]['id']
@@ -21,26 +21,26 @@ var queries = {
   }
 }
 
-function mysqlRandomWorld(callback) {
-  connection.query(queries.RANDOM_WORLD, function (err, rows, fields) {
+const mysqlRandomWorld = (callback) => {
+  connection.query(queries.RANDOM_WORLD, (err, rows, fields) => {
     callback(err, rows[0]);
   });
 }
 
-function mysqlGetAllFortunes(callback) {
-  connection.query(queries.ALL_FORTUNES, function (err, rows, fields) {
+const mysqlGetAllFortunes = (callback) => {
+  connection.query(queries.ALL_FORTUNES, (err, rows, fields) => {
     callback(err, rows);
   })
 }
 
-function mysqlUpdateQuery(callback) {
-  connection.query(queries.RANDOM_WORLD, function (err, rows, fields) {
+const mysqlUpdateQuery = (callback) => {
+  connection.query(queries.RANDOM_WORLD, (err, rows, fields) => {
     if (err) { return process.exit(1); }
 
     rows[0].randomNumber = h.randomTfbNumber();
-    var updateQuery = queries.UPDATE_WORLD(rows);
+    const updateQuery = queries.UPDATE_WORLD(rows);
 
-    connection.query(updateQuery, function (err, result) {
+    connection.query(updateQuery, (err, result) => {
       callback(err, rows[0]);
     });
   });
@@ -48,8 +48,8 @@ function mysqlUpdateQuery(callback) {
 
 module.exports = {
 
-  SingleQuery: function (req, res) {
-    mysqlRandomWorld(function (err, result) {
+  SingleQuery: (req, res) => {
+    mysqlRandomWorld((err, result) => {
       if (err) { return process.exit(1); }
 
       h.addTfbHeaders(res, 'json');
@@ -57,10 +57,10 @@ module.exports = {
     });
   },
 
-  MultipleQueries: function (queries, req, res) {
-    var queryFunctions = h.fillArray(mysqlRandomWorld, queries);
+  MultipleQueries: (queries, req, res) => {
+    const queryFunctions = h.fillArray(mysqlRandomWorld, queries);
 
-    async.parallel(queryFunctions, function (err, results) {
+    async.parallel(queryFunctions, (err, results) => {
       if (err) { return process.exit(1); }
 
       h.addTfbHeaders(res, 'json');
@@ -68,12 +68,12 @@ module.exports = {
     });
   },
 
-  Fortunes: function (req, res) {
-    mysqlGetAllFortunes(function (err, fortunes) {
+  Fortunes: (req, res) => {
+    mysqlGetAllFortunes((err, fortunes) => {
       if (err) { return process.exit(1); }
 
       fortunes.push(h.ADDITIONAL_FORTUNE);
-      fortunes.sort(function (a, b) {
+      fortunes.sort((a, b) => {
         return a.message.localeCompare(b.message);
       })
       h.addTfbHeaders(res, 'html');
@@ -83,10 +83,10 @@ module.exports = {
     });
   },
 
-  Updates: function (queries, req, res) {
-    var queryFunctions = h.fillArray(mysqlUpdateQuery, queries);
+  Updates: (queries, req, res) => {
+    const queryFunctions = h.fillArray(mysqlUpdateQuery, queries);
 
-    async.parallel(queryFunctions, function (err, results) {
+    async.parallel(queryFunctions, (err, results) => {
       if (err) { return process.exit(1); }
 
       h.addTfbHeaders(res, 'json');
@@ -94,4 +94,4 @@ module.exports = {
     });
   } 
 
-}
+}

+ 30 - 41
frameworks/JavaScript/nodejs/handlers/sequelize-postgres.js

@@ -1,14 +1,14 @@
-var h = require('../helper');
-var Promise = require('bluebird');
+const h = require('../helper');
+const Promise = require('bluebird');
 
-var Sequelize = require('sequelize');
-var sequelize = new Sequelize('hello_world', 'benchmarkdbuser', 'benchmarkdbpass', {
-  host: '127.0.0.1',
+const Sequelize = require('sequelize');
+const sequelize = new Sequelize('hello_world', 'benchmarkdbuser', 'benchmarkdbpass', {
+  host: 'TFB-database',
   dialect: 'postgres',
   logging: false
 });
 
-var Worlds = sequelize.define('World', {
+const Worlds = sequelize.define('World', {
   id:           { type: 'Sequelize.INTEGER' },
   randomnumber: { type: 'Sequelize.INTEGER' }
 }, {
@@ -16,7 +16,7 @@ var Worlds = sequelize.define('World', {
   freezeTableName: true
 });
 
-var Fortunes = sequelize.define('Fortune', {
+const Fortunes = sequelize.define('Fortune', {
   id:      { type: 'Sequelize.INTEGER' },
   message: { type: 'Sequelize.STRING' }
 }, {
@@ -24,63 +24,56 @@ var Fortunes = sequelize.define('Fortune', {
   freezeTableName: true
 });
 
-var randomWorldPromise = function() {
+const randomWorldPromise = () => {
   return Worlds.findOne({
     where: { id: h.randomTfbNumber() }
-  }).then(function (results) {
+  }).then((results) => {
     return results;
-  }).catch(function (err) {
-    process.exit(1);
-  });
+  }).catch((err) => process.exit(1));
 }
 
 module.exports = {
 
-  SingleQuery: function (req, res) {
-    randomWorldPromise().then(function (world) {
+  SingleQuery: (req, res) => {
+    randomWorldPromise().then((world) => {
       h.addTfbHeaders(res, 'json');
       res.end(JSON.stringify(world));
     });
   },
 
-  MultipleQueries: function (queries, req, res) {
-    var worldPromises = [];
+  MultipleQueries: (queries, req, res) => {
+    const worldPromises = [];
 
-    for (var i = 0; i < queries; i++) {
+    for (let i = 0; i < queries; i++) {
       worldPromises.push(randomWorldPromise());
     } 
 
-    Promise.all(worldPromises).then(function (worlds) {
+    Promise.all(worldPromises).then((worlds) => {
       h.addTfbHeaders(res, 'json');
       res.end(JSON.stringify(worlds));
     });
   },
 
-  Fortunes: function (req, res) {
-    Fortunes.findAll().then(function (fortunes) {
+  Fortunes: (req, res) => {
+    Fortunes.findAll().then((fortunes) => {
       fortunes.push(h.ADDITIONAL_FORTUNE);
-      fortunes.sort(function (a, b) {
-        return a.message.localeCompare(b.message);
-      });
+      fortunes.sort((a, b) => a.message.localeCompare(b.message));
 
       h.addTfbHeaders(res, 'html');
       res.end(h.fortunesTemplate({
         fortunes: fortunes
       }));
-    }).catch(function (err) {
-      console.log(err.stack);
-      process.exit(1);
-    });
+    }).catch((err) => process.exit(1));
   },
 
-  Updates: function (queries, req, res) {
-    var worldPromises = [];
+  Updates: (queries, req, res) => {
+    const worldPromises = [];
 
-    for (var i = 0; i < queries; i++) {
+    for (let i = 0; i < queries; i++) {
       worldPromises.push(randomWorldPromise());
     }
 
-    var worldUpdate = function(world) {
+    const worldUpdate = (world) => {
       world.randomNumber = h.randomTfbNumber();
 
       return Worlds.update({
@@ -88,23 +81,19 @@ module.exports = {
       },
       {
         where: { id: world.id }
-      }).then(function (results) {
+      }).then((results) => {
         return world;
-      }).catch(function (err) {
-        process.exit(1);
-      });
+      }).catch((err) => process.exit(1));
     }
 
-    Promise.all(worldPromises).then(function (worlds) {
-      var updates = worlds.map(function (e) {
-        return worldUpdate(e);
-      });
+    Promise.all(worldPromises).then((worlds) => {
+      const updates = worlds.map((e) => worldUpdate(e));
 
-      Promise.all(updates).then(function (updated) {
+      Promise.all(updates).then((updated) => {
         h.addTfbHeaders(res, 'json');
         res.end(JSON.stringify(updated));
       });
     });
   }
 
-}
+}

+ 30 - 32
frameworks/JavaScript/nodejs/handlers/sequelize.js

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

+ 0 - 6
frameworks/JavaScript/nodejs/setup.sh

@@ -2,11 +2,5 @@
 
 fw_depends mongodb mysql postgresql nodejs
 
-sed -i 's|127.0.0.1|'"${DBHOST}"'|g' handlers/mongodb-raw.js
-sed -i 's|127.0.0.1|'"${DBHOST}"'|g' handlers/mongoose.js
-sed -i 's|127.0.0.1|'"${DBHOST}"'|g' handlers/mysql-raw.js
-sed -i 's|127.0.0.1|'"${DBHOST}"'|g' handlers/sequelize.js
-sed -i 's|127.0.0.1|'"${DBHOST}"'|g' handlers/sequelize-postgres.js
-
 npm install
 node app.js &