61 lines
1.2 KiB
JavaScript
61 lines
1.2 KiB
JavaScript
|
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
|
||
|
} 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())
|
||
|
}
|