const Koa = require('koa') const app = new Koa() const views = require('koa-views') const cors = require('koa2-cors') const json = require('koa-json') const onerror = require('koa-onerror') const bodyparser = require('koa-bodyparser') const logger = require('koa-logger') const log4js = require('./config/log4'); const index = require('./routes/index') const { Aids: syncAids, AidsState: syncAidsState, newHotelDetails: syncNewHotels, hotelLgcDetails: syncHotelDetails, chinaHotelDetails: syncChinas } = require('./jobs/syncHeytripJobs'); const rlog = require('./middleware/request_log'); // error handler onerror(app) // app.proxy = true; app.use(log4js); // middlewares app.use(bodyparser({ enableTypes:['json', 'form', 'text'] })) app.use(cors({ origin: function(ctx){ return '*' } })) app.use(json()) app.use(logger()) app.use(require('koa-static')(__dirname + '/public')) app.use(views(__dirname + '/views', { extension: 'ejs' })) app.use(rlog); // logger debug: // app.use(async (ctx, next) => { // const start = new Date() // await next() // const ms = new Date() - start // console.log(`${ctx.method} ${ctx.url} - ${ms}ms`) // }) // schedule jobs // syncAids(); syncAidsState(); syncNewHotels(); syncHotelDetails(); syncChinas(); // routes app.use(index.routes(), index.allowedMethods()) // app.use(routes(), allowedMethods()) // error-handling app.on('error', (err, ctx) => { console.error('server error', err, ctx) }); module.exports = app