const Koa = require('koa') const fs = require('fs') const path = require('path') // koa middleware const KoaLogger = require('koa-morgan') const KoaEjs = require('koa-ejs') const KoaMount = require('koa-mount') const KoaStatic = require('koa-static') const KoaRouter = require('koa-router') const app = new Koa() let config = {} let setupMode = false try { let chk = new Promise((resolve, reject) => { fs.access(path.resolve('config.json'), (err) => { if (err) { setupMode = true resolve(0) return } config = require('./config.json') resolve(1) }) }) await chk //eslint-disable-line } catch (err) { setupMode = true } const server = app.listen(config.port || 10230, () => { console.log(`Server start on port ${server.address().port}`) }) app.use(KoaLogger('short')) app.use(KoaStatic(path.resolve(__dirname, 'public'))) KoaEjs(app, { root: path.resolve(__dirname, 'views'), layout: false, viewExt: 'ejs', cache: false, debug: false }) let router = null if (setupMode) { console.log(`start setup mode`) router = require('./route/install') } else { console.log(`start normal mode`) } if (router !== null) { // set Route app.use(router.routes()) app.use(router.allowedMethods()) }