2017-09-04 10:34:44 +00:00
|
|
|
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)
|
|
|
|
})
|
|
|
|
})
|
2017-09-05 10:36:35 +00:00
|
|
|
await chk //eslint-disable-line
|
2017-09-04 10:34:44 +00:00
|
|
|
} 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())
|
2017-09-05 15:32:52 +00:00
|
|
|
|
|
|
|
router.put('/reboot_sys', async (c, n) => {
|
|
|
|
setTimeout(function(){
|
|
|
|
process.exit(1)
|
|
|
|
}, 2000)
|
|
|
|
c.body = '1'
|
|
|
|
})
|
2017-09-04 10:34:44 +00:00
|
|
|
}
|