Browse Source

Using libmysqlclient and mapper orm for mysql tests

Patrick Falls 12 years ago
parent
commit
32e3420d18
2 changed files with 25 additions and 35 deletions
  1. 23 33
      nodejs/hello.js
  2. 2 2
      nodejs/package.json

+ 23 - 33
nodejs/hello.js

@@ -17,33 +17,18 @@ if(cluster.isMaster) {
 var http = require('http')
   , url = require('url')
   , async = require('async')
+  , libmysql = require('mysql-libmysqlclient').createConnectionSync()
   , mongoose = require('mongoose')
   , conn = mongoose.connect('mongodb://localhost/hello_world')
   , MongoClient = require('mongodb').MongoClient
-  , mysql = require('mysql')
-  , pool  = mysql.createPool({
-      host: 'localhost',
-      user     : 'benchmarkdbuser',
-      password : 'benchmarkdbpass',
-      database : 'hello_world',
-      connectionLimit : 256
-    })
-  , Sequelize = require("sequelize")
-  , sequelize = new Sequelize('hello_world', 'benchmarkdbuser', 'benchmarkdbpass', {
-    host: 'localhost',
-    logging: false,
-    define: { timestamps: false },
-    maxConcurrentQueries: 100,
-    pool: { maxConnections: 800, maxIdleTime: 30 }
-  })
-  , World      = sequelize.define('World', {
-    randomNumber: Sequelize.INTEGER
-  }, {
-    freezeTableName: true
-  });
+  , Mapper = require('mapper')
+  , connMap = { user: 'benchmarkdbuser', password: 'benchmarkdbpass', database: 'hello_world' };
 
 var collection = null;
+Mapper.connect(connMap, {verbose: false, strict: false});
+var World = Mapper.map("World", "id", "randomNumber")
 
+libmysql.connectSync('localhost', 'benchmarkdbuser', 'benchmarkdbpass', 'hello_world');
 MongoClient.connect('mongodb://localhost/hello_world?maxPoolSize=5', function(err, db) {
   collection = db.collection('world');
 });
@@ -58,8 +43,6 @@ var WorldSchema = new Schema({
 }, { collection : 'world' });
 var MWorld = conn.model('World', WorldSchema);
 
-
-
 function getRandomNumber() {
   return Math.floor(Math.random() * 10000) + 1;
 }
@@ -79,7 +62,7 @@ function mongodbDriverQuery(callback) {
 }
 
 function sequelizeQuery(callback) {
-  World.find(getRandomNumber()).success(function (world) {
+  World.findById(getRandomNumber(), function (err, world) {
     callback(null, world);
   });
 }
@@ -132,7 +115,7 @@ http.createServer(function (req, res) {
     });
     break;
 
-  case '/sequelize':
+  case '/mysql-orm':
     var values = url.parse(req.url, true);
     var queries = values.query.queries || 1;
     var queryFunctions = new Array(queries);
@@ -151,22 +134,29 @@ http.createServer(function (req, res) {
   case '/mysql':
     res.writeHead(200, {'Content-Type': 'application/json'});
 
-    function mysqlQuery(callback) {
-      pool.getConnection(function(err, connection) {
-        if (err) callback(err);
-        connection.query("SELECT * FROM world WHERE id = " + getRandomNumber(), function(err, rows) {
-          callback(null, rows[0]);
-          connection.end();
+    function libmysqlQuery(callback) {
+      libmysql.query("SELECT * FROM world WHERE id = " + getRandomNumber(), function (err, res) {
+        if (err) {
+	  throw err;
+	}
+	
+	res.fetchAll(function(err, rows) {
+	  if (err) {
+	    throw err;
+	  }
+
+	  res.freeSync();
+	  callback(null, rows[0]);
         });
       });
-    }
+    } 
 
     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] = mysqlQuery;
+      queryFunctions[i] = libmysqlQuery;
     }
     async.parallel(queryFunctions, function(err, results) {
       if (err) {

+ 2 - 2
nodejs/package.json

@@ -4,10 +4,10 @@
   , "private": true
   , "dependencies": {
       "mongoose": "3.5.5" 
-    , "sequelize": "1.6.0-beta4"
     , "async": "0.2.5"
-    , "mysql": "2.0.0-alpha7"
     , "mongodb": "1.2.14"
+    , "mysql-libmysqlclient": "1.5.2"
+    , "mapper": "0.2.4-pre"
   }
   , "main": "hello.js"
 }