You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1001 B
JavaScript
44 lines
1001 B
JavaScript
7 months ago
|
const Koa = require('koa');
|
||
|
const server = new Koa();
|
||
|
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 requestHandler = require('./middleware/request.middleware');
|
||
|
const { isDevelopment } = require('./config');
|
||
|
const applyApiMiddleware = require('./api');
|
||
|
|
||
|
/**
|
||
|
* Add here only development middlewares
|
||
|
*/
|
||
|
if (isDevelopment) {
|
||
|
server.use(logger);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Pass to our server instance middlewares
|
||
|
*/
|
||
|
server
|
||
|
.use(bodyParser)
|
||
|
.use(helmet)
|
||
|
.use(compress)
|
||
|
.use(cors)
|
||
|
.use(requestHandler);
|
||
|
|
||
|
// Logger
|
||
|
server.use(async (ctx, next) => {
|
||
|
const start = new Date();
|
||
|
await next();
|
||
|
const ms = new Date() - start;
|
||
|
console.log(`${ctx.method} ${ctx.url} - ${ms}ms`);
|
||
|
});
|
||
|
|
||
|
/**
|
||
|
* Apply to our server the api router
|
||
|
*/
|
||
|
applyApiMiddleware(server);
|
||
|
|
||
|
module.exports = server;
|