const Koa = require('koa') const app = new Koa() const views = require('koa-views') const json = require('koa-json') const onerror = require('koa-onerror') const bodyparser = require('koa-bodyparser') const cors = require('koa2-cors') const logger = require('koa-logger') const config = require("./config") const game = require('./routes/game/game'); const Code = require("shared/code"); // error handler onerror(app) if (!!config.debug) { app.use(cors({ origin: function (ctx) { return config.cors.default; } })); } // app.use(koabody({multipart:true})); // middlewares app.use(bodyparser({ enableTypes:['json', 'form', 'text'], multipart: true })) app.use(json()) app.use(logger()) app.use(require('koa-static')(__dirname + '/static')) // logger app.use(async (ctx, next) => { const start = new Date() await next() const ms = new Date() - start console.log(`${ctx.method} ${ctx.url} - ${ms}ms`) }) // routes app.use(game.routes(), game.allowedMethods()); // error-handling app.on('error', (err, ctx) => { console.error('server error', err, ctx) }); module.exports = app