Browse Source

first crack at fortune test for express

Patrick Falls 12 years ago
parent
commit
63bcdc4bc4
5 changed files with 54 additions and 25 deletions
  1. 1 1
      benchmarker.py
  2. 12 24
      config/create.js
  3. 20 0
      express/app.js
  4. 1 0
      express/package.json
  5. 20 0
      express/views/fortune.mustache

+ 1 - 1
benchmarker.py

@@ -304,7 +304,7 @@ class Benchmarker:
       # If the test is in the excludes list, we skip it
       if self.exclude != None and test.name in self.exclude:
         continue
-
+      
       print textwrap.dedent("""
       =====================================================
         Beginning {name}

+ 12 - 24
config/create.js

@@ -10,28 +10,16 @@ db.world.ensureIndex({id: 1})
 db.fortune.drop()
 
 db.fortune.save( {id: 1, message: 'fortune: No such file or directory'} );
-db.fortune.save( {id: 1, message: 'fortune: No such file or directory'} );
-db.fortune.save( {id: 1, message: 'fortune: No such file or directory'} );
-db.fortune.save( {id: 1, message: 'fortune: No such file or directory'} );
-db.fortune.save( {id: 1, message: 'fortune: No such file or directory'} );
-db.fortune.save( {id: 1, message: 'fortune: No such file or directory'} );
-db.fortune.save( {id: 1, message: 'fortune: No such file or directory'} );
-db.fortune.save( {id: 1, message: 'fortune: No such file or directory'} );
-db.fortune.save( {id: 1, message: 'fortune: No such file or directory'} );
-db.fortune.save( {id: 1, message: 'fortune: No such file or directory'} );
-db.fortune.save( {id: 1, message: 'fortune: No such file or directory'} );
-db.fortune.save( {id: 1, message: 'fortune: No such file or directory'} );
-
-db.fortune.ensureIndex({id: 1})
+db.fortune.save( {id: 2, message: 'A computer scientist is someone who fixes things that aren''t broken.'} );
+db.fortune.save( {id: 3, message: 'After enough decimal places, nobody gives a damn.'} );
+db.fortune.save( {id: 4, message: 'A bad random number generator: 1, 1, 1, 1, 1, 4.33e+67, 1, 1, 1'} );
+db.fortune.save( {id: 5, message: 'A computer program does what you tell it to do, not what you want it to do.'} );
+db.fortune.save( {id: 6, message: 'Emacs is a nice operating system, but I prefer UNIX. — Tom Christaensen'} );
+db.fortune.save( {id: 7, message: 'Any program that runs right is obsolete.'} );
+db.fortune.save( {id: 8, message: 'A list is only as strong as its weakest link. — Donald Knuth'} );
+db.fortune.save( {id: 9, message: 'Feature: A bug with seniority.'} );
+db.fortune.save( {id: 10, message: 'Computers make very fast, very accurate mistakes.'} );
+db.fortune.save( {id: 11, message: '<script>alert("This should not be displayed in a browser alert box.");</script>'} );
+db.fortune.save( {id: 12, message: 'フレームワークのベンチマーク'} );
 
-INSERT INTO fortune (message) VALUES ('A computer scientist is someone who fixes things that aren''t broken.');
-INSERT INTO fortune (message) VALUES ('After enough decimal places, nobody gives a damn.');
-INSERT INTO fortune (message) VALUES ('A bad random number generator: 1, 1, 1, 1, 1, 4.33e+67, 1, 1, 1');
-INSERT INTO fortune (message) VALUES ('A computer program does what you tell it to do, not what you want it to do.');
-INSERT INTO fortune (message) VALUES ('Emacs is a nice operating system, but I prefer UNIX. — Tom Christaensen');
-INSERT INTO fortune (message) VALUES ('Any program that runs right is obsolete.');
-INSERT INTO fortune (message) VALUES ('A list is only as strong as its weakest link. — Donald Knuth');
-INSERT INTO fortune (message) VALUES ('Feature: A bug with seniority.');
-INSERT INTO fortune (message) VALUES ('Computers make very fast, very accurate mistakes.');
-INSERT INTO fortune (message) VALUES ('<script>alert("This should not be displayed in a browser alert box.");</script>');
-INSERT INTO fortune (message) VALUES ('フレームワークのベンチマーク');
+db.fortune.ensureIndex({id: 1})

+ 20 - 0
express/app.js

@@ -6,6 +6,7 @@
 var cluster = require('cluster')
   , numCPUs = require('os').cpus().length
   , express = require('express')
+  , mustacheExpress = require('mustache-express')
   , mongoose = require('mongoose')
   , async = require('async')
   , conn = mongoose.connect('mongodb://localhost/hello_world')
@@ -50,6 +51,10 @@ if (cluster.isMaster) {
     app.use(express.bodyParser());
     app.use(express.methodOverride());
     app.use(app.router);
+    app.engine('mustache', mustacheExpress());
+
+    app.set('view engine', 'mustache');
+    app.set('views', __dirname + '/views');
   });
 
   app.configure('development', function() {
@@ -104,5 +109,20 @@ if (cluster.isMaster) {
     });
   });
 
+  app.get('/fortune', function(req, res) {
+    Fortune.findAll().success(function (fortunes) {
+      var newFortune = new Fortune();
+      newFortune.message = "Additional fortune added at request time.";
+      fortune.push(newFortune);
+      fortune.sort(sortFortunes);
+
+      res.render('fortune', {fortunes: fortunes});
+    });
+  });
+
+  function sortFortunes(a, b) {
+    return (a.message < b.message) ? -1 : (a.message > b.message) ? 1 : 0;
+  }
+
   app.listen(8080);
 }

+ 1 - 0
express/package.json

@@ -8,5 +8,6 @@
     , "async": "0.2.5"
     , "sequelize": "1.6.0-beta4"
     , "mysql": "2.0.0-alpha7"
+    , "mustache-express": "0.2.1"
   }
 }

+ 20 - 0
express/views/fortune.mustache

@@ -0,0 +1,20 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>Fortunes</title>
+</head>
+<body>
+<table>
+<tr>
+<th>id</th>
+<th>message</th>
+</tr>
+{{#fortunes}}
+<tr>
+<td>{{id}}</td>
+<td>{{message}}</td>
+</tr>
+{{/fortunes}}
+</table>
+</body>
+</html>