Browse Source

Koa json/plaintext

Edward Bramanti 10 years ago
parent
commit
032915619a
2 changed files with 64 additions and 0 deletions
  1. 51 0
      frameworks/JavaScript/koa/app.js
  2. 13 0
      frameworks/JavaScript/koa/package.json

+ 51 - 0
frameworks/JavaScript/koa/app.js

@@ -0,0 +1,51 @@
+var cluster = require('cluster')
+  , numCPUs = require('os').cpus().length
+  , koa = require('koa')
+  , route = require('koa-route')
+  , bodyParser = require('koa-bodyparser')
+  , override = require('koa-override')
+  , mongoose = require('mongoose')
+  , conn = mongoose.connect('mongodb://localhost/hello_world');
+
+var Schema = mongoose.Schema
+  , ObjectId = Schema.ObjectId;
+
+var WorldSchema = new Schema({
+    id                           : Number
+  , randomNumber                 : Number
+}, { collection : 'world' });
+var MWorld = conn.model('World', WorldSchema);
+
+if (cluster.isMaster) {
+  // Fork workers.
+  for (var i = 0; i < numCPUs; i++) {
+  cluster.fork();
+  }
+
+  cluster.on('exit', function(worker, code, signal) {
+  console.log('worker ' + worker.process.pid + ' died');
+  });
+} else {
+  var app = module.exports = koa();
+  app.use(bodyParser());
+  app.use(override());
+
+  // routes
+  app.use(route.get('/json', jsonHandler));
+  // app.use(route.get('/db', dbHandler));
+  // app.use(route.get('/queries', queriesHandler));
+  // app.use(route.get('/fortune', fortuneHandler));
+  // app.use(route.get('/update', updateHandler));
+  app.use(route.get('/plaintext', textHandler));
+
+  function *jsonHandler() {
+    this.response.body = {
+      message: "Hello, world!"
+    }
+  }
+
+  function *textHandler() {
+    this.body = 'Hello, world!'
+  }
+  app.listen(3000); //used for local testing
+}

+ 13 - 0
frameworks/JavaScript/koa/package.json

@@ -0,0 +1,13 @@
+{
+  "name": "koa-tfb",
+  "version": "0.0.1",
+  "description": "Koa tests for TechEmpower Framework Benchmarks.",
+  "main": "app.js", 
+  "dependencies": {
+      "koa": "0.18.1"
+    , "koa-route": "2.4.0"
+    , "koa-bodyparser": "1.4.1"
+    , "koa-override": "1.0.0"
+    , "mongoose": "3.8.25" 
+  }
+}