const Koa = require('koa'); const server = new Koa(); const multer = require('@koa/multer')(); const bodyParser = require('koa-bodyparser')(); const compress = require('koa-compress')(); const cors = require('@koa/cors')(/* Add your cors option */); const helmet = require('koa-helmet')(/* Add your security option */); const logger = require('koa-logger')(); const { isDevelopment } = require('./config'); const applyApiMiddleware = require('./api'); const applyMiddleware = require('./middleware'); /** * Add here only development middlewares */ if (isDevelopment) { // server.use(logger); // Logger server.use(async (ctx, next) => { const start = new Date(); await next(); const ms = new Date() - start; console.log(`${ctx.method} ${ctx.url} - ${ctx.status} - ${ms}ms`); }); } /** * Pass to our server instance middlewares */ server .use(logger) .use(multer.any()) .use(bodyParser) .use(helmet) .use(compress) .use(cors); applyMiddleware(server); /** * Apply to our server the api router */ applyApiMiddleware(server); module.exports = server;