app.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. var cluster = require('cluster')
  2. , numCPUs = require('os').cpus().length
  3. , koa = require('koa')
  4. , route = require('koa-route')
  5. , bodyParser = require('koa-bodyparser')
  6. , override = require('koa-override')
  7. , mongoose = require('mongoose')
  8. , conn = mongoose.connect('mongodb://localhost/hello_world');
  9. var Schema = mongoose.Schema
  10. , ObjectId = Schema.ObjectId;
  11. var WorldSchema = new Schema({
  12. id : Number
  13. , randomNumber : Number
  14. }, { collection : 'world' });
  15. var MWorld = conn.model('World', WorldSchema);
  16. if (cluster.isMaster) {
  17. // Fork workers.
  18. for (var i = 0; i < numCPUs; i++) {
  19. cluster.fork();
  20. }
  21. cluster.on('exit', function(worker, code, signal) {
  22. console.log('worker ' + worker.process.pid + ' died');
  23. });
  24. } else {
  25. var app = module.exports = koa();
  26. app.use(bodyParser());
  27. app.use(override());
  28. // routes
  29. app.use(route.get('/json', jsonHandler));
  30. app.use(route.get('/db', dbHandler));
  31. // app.use(route.get('/queries', queriesHandler));
  32. // app.use(route.get('/fortune', fortuneHandler));
  33. // app.use(route.get('/update', updateHandler));
  34. app.use(route.get('/plaintext', textHandler));
  35. function *jsonHandler() {
  36. this.response.body = {
  37. message: "Hello, world!"
  38. }
  39. }
  40. function *dbHandler() {
  41. var queries = this.request.queries.queries
  42. }
  43. function *textHandler() {
  44. this.body = 'Hello, world!'
  45. }
  46. app.listen(3000); //used for local testing
  47. }