Browse Source

And more unification of style.

Bjorn Stromberg 12 years ago
parent
commit
4900a38746
1 changed files with 71 additions and 77 deletions
  1. 71 77
      nodejs/hello.js

+ 71 - 77
nodejs/hello.js

@@ -50,103 +50,97 @@ if (cluster.isMaster) {
   return;
 }
 
+function getRandomNumber() {
+  return Math.floor(Math.random() * 10000) + 1;
+}
+
 function mongooseQuery(callback) {
-  MWorld.findOne({ id: (Math.floor(Math.random() * 10000) + 1)}).exec(function (err, world) {
+  MWorld.findOne({ id: getRandomNumber()}).exec(function (err, world) {
     callback(err, world);
   });
 }
 
-  http.createServer(function (req, res) {
-    // JSON response object
-    var hello = {message: "Hello, world"};
+function sequelizeQuery(callback) {
+  World.find(getRandomNumber()).success(function (world) {
+    callback(null, world);
+  });
+}
 
-    var path = url.parse(req.url).pathname;
+http.createServer(function (req, res) {
+  // JSON response object
+  var hello = {message: "Hello, world"};
 
-    switch (path) {
-    case '/json':
-      // JSON Response Test
-      res.writeHead(200, {'Content-Type': 'application/json; charset=UTF-8'});
-      // Write JSON object to response
-      res.end(JSON.stringify(hello));
-      break;
+  var path = url.parse(req.url).pathname;
 
-    case '/mongoose':
-      // Database Test
-      var values = url.parse(req.url, true);
-      var queries = values.query.queries || 1;
+  switch (path) {
+  case '/json':
+    // JSON Response Test
+    res.writeHead(200, {'Content-Type': 'application/json; charset=UTF-8'});
+    // Write JSON object to response
+    res.end(JSON.stringify(hello));
+    break;
 
-      var queryFunctions = new Array(queries);
+  case '/mongoose':
+    // Database Test
+    var values = url.parse(req.url, true);
+    var queries = values.query.queries || 1;
+    var queryFunctions = new Array(queries);
 
-      for (var i = 0; i < queries; i += 1) {
-        queryFunctions[i] = mongooseQuery;
-      }
+    for (var i = 0; i < queries; i += 1) {
+      queryFunctions[i] = mongooseQuery;
+    }
 
-      res.writeHead(200, {'Content-Type': 'application/json; charset=UTF-8'});
+    res.writeHead(200, {'Content-Type': 'application/json; charset=UTF-8'});
 
-      async.parallel(queryFunctions, function(err, results) {
-        res.end(JSON.stringify(results));
-      });
-      break;
+    async.parallel(queryFunctions, function(err, results) {
+      res.end(JSON.stringify(results));
+    });
+    break;
 
-    case '/sequelize':
-        var queries = 1,
-        worlds  = [],
-        queryFunctions = [],
-        values = url.parse(req.url, true);
+  case '/sequelize':
+    var values = url.parse(req.url, true);
+    var queries = values.query.queries || 1;
+    var queryFunctions = new Array(queries);
 
-      if ( values.query.queries ) {
-        queries = values.query.queries;
-      }
+    for (var i = 0; i < queries; i += 1) {
+      queryFunctions[i] = sequelizeQuery;
+    }
 
-      res.writeHead(200, {'Content-Type': 'application/json'});
+    res.writeHead(200, {'Content-Type': 'application/json'});
 
-      for (var i = 1; i <= queries; i++ ) {
-        queryFunctions.push(function(callback) {
-          World.find(Math.floor(Math.random()*10000) + 1).success(function(world) {
-            worlds.push(world);
-            callback(null, 'success');
-          });
-        });
-      }
+    async.parallel(queryFunctions, function(err, results) {
+      res.end(JSON.stringify(results));
+    });
+    break;
 
-      async.parallel(queryFunctions, function(err, results) {
-        res.end(JSON.stringify(worlds));
-      });
-      break;
+  case '/mysql':
+    var values = url.parse(req.url, true);
+    var queries = values.query.queries || 1;
+    var queryFunctions = new Array(queries);
 
-    case '/mysql':
-        var queries = 1,
-        worlds  = [],
-        queryFunctions = [],
-        values = url.parse(req.url, true);
+    for (var i = 0; i < queries; i += 1) {
+      queryFunctions[i] = mysqlQuery;
+    }
 
-      if ( values.query.queries ) {
-        queries = values.query.queries;
+    res.writeHead(200, {'Content-Type': 'application/json'});
+    
+    pool.getConnection(function(err, connection) {
+      function mysqlQuery(callback) {
+        connection.query("SELECT * FROM World WHERE id = " + getRandomNumber()), function(err, rows) {
+          callback(null, rows[0]);
+        });
       }
 
-      res.writeHead(200, {'Content-Type': 'application/json'});
-      
-      pool.getConnection(function(err, connection) {
-        for (var i = 1; i <= queries; i++ ) {
-          queryFunctions.push(function(callback) {
-            connection.query("SELECT * FROM World WHERE id = " + (Math.floor(Math.random()*10000) + 1), function(err, rows) {
-              worlds.push(rows[0]);
-              callback(null, 'success');
-            });
-          });
-        }
-
-        async.parallel(queryFunctions, function(err, results) {
-          res.end(JSON.stringify(worlds));
-          connection.end();
-        });
+      async.parallel(queryFunctions, function(err, results) {
+        res.end(JSON.stringify(results));
+        connection.end();
       });
-      break;
-
-    default:
-      // File not found handler
-      res.writeHead(404, {'Content-Type': 'text/html; charset=UTF-8'});
-      res.end("NOT IMPLEMENTED");
-    }
-  }).listen(8080);
+    });
+    break;
 
+  default:
+    // File not found handler
+    res.writeHead(404, {'Content-Type': 'text/html; charset=UTF-8'});
+    res.end("NOT IMPLEMENTED");
+  }
+}).listen(8080);