|
@@ -4,17 +4,7 @@ var cluster = require('cluster')
|
|
, route = require('koa-route')
|
|
, route = require('koa-route')
|
|
, bodyParser = require('koa-bodyparser')
|
|
, bodyParser = require('koa-bodyparser')
|
|
, override = require('koa-override')
|
|
, 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);
|
|
|
|
|
|
+ , mongo = require('koa-mongo');
|
|
|
|
|
|
if (cluster.isMaster) {
|
|
if (cluster.isMaster) {
|
|
// Fork workers.
|
|
// Fork workers.
|
|
@@ -29,15 +19,25 @@ if (cluster.isMaster) {
|
|
var app = module.exports = koa();
|
|
var app = module.exports = koa();
|
|
app.use(bodyParser());
|
|
app.use(bodyParser());
|
|
app.use(override());
|
|
app.use(override());
|
|
|
|
+ app.use(mongo({
|
|
|
|
+ uri: "mongodb://localhost/hello_world"
|
|
|
|
+ }));
|
|
|
|
|
|
// routes
|
|
// routes
|
|
app.use(route.get('/json', jsonHandler));
|
|
app.use(route.get('/json', jsonHandler));
|
|
app.use(route.get('/db', dbHandler));
|
|
app.use(route.get('/db', dbHandler));
|
|
- // app.use(route.get('/queries', queriesHandler));
|
|
|
|
|
|
+ app.use(route.get('/queries', queriesHandler));
|
|
// app.use(route.get('/fortune', fortuneHandler));
|
|
// app.use(route.get('/fortune', fortuneHandler));
|
|
// app.use(route.get('/update', updateHandler));
|
|
// app.use(route.get('/update', updateHandler));
|
|
app.use(route.get('/plaintext', textHandler));
|
|
app.use(route.get('/plaintext', textHandler));
|
|
|
|
|
|
|
|
+ function *worldQuery() {
|
|
|
|
+ return yield function(callback) {
|
|
|
|
+ var randomId = {id: Math.floor(Math.random()*10000) + 1};
|
|
|
|
+ this.mongo.collection('world').findOne(randomId, {_id: 0}, callback);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
function *jsonHandler() {
|
|
function *jsonHandler() {
|
|
this.response.body = {
|
|
this.response.body = {
|
|
message: "Hello, world!"
|
|
message: "Hello, world!"
|
|
@@ -45,7 +45,16 @@ if (cluster.isMaster) {
|
|
}
|
|
}
|
|
|
|
|
|
function *dbHandler() {
|
|
function *dbHandler() {
|
|
- var queries = this.request.queries.queries
|
|
|
|
|
|
+ this.body = yield worldQuery;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ function *queriesHandler() {
|
|
|
|
+ var numOfQueries = this.query.queries || 1,
|
|
|
|
+ queries = [];
|
|
|
|
+ for (var i = 0; i < numOfQueries; i++) {
|
|
|
|
+ queries.push(worldQuery);
|
|
|
|
+ }
|
|
|
|
+ this.body = yield queries;
|
|
}
|
|
}
|
|
|
|
|
|
function *textHandler() {
|
|
function *textHandler() {
|