koot
Version:
Koot.js - React isomorphic framework created by CMUX
69 lines (54 loc) • 1.66 kB
JavaScript
const DEFAULT_PORT = 3000
const debug = require('debug')
// const warn = debug('SYSTEM:warn')
const info = debug('SYSTEM:info')
const error = debug('SYSTEM:error')
export default class App {
app = null
httpServer = null
constructor() {
// 实例化1个 Koa 对象
this.app = ((Koa) => new Koa())(require('koa'))
}
instance() {
return this.app
}
run(port = DEFAULT_PORT) {
const http = require('http')
const server = this.httpServer = http.createServer(this.app.callback())
// http 服务监听
server.on('error', onError)
server.on('listening', onListening)
function onError(err) {
if (err.syscall !== 'listen') {
throw err
}
// handle specific listen errors with friendly messages
switch (err.code) {
case 'EACCES':
error(port + ' requires elevated privileges !!!')
process.exit(1)
break
case 'EADDRINUSE':
error(port + ' is already in use !!!')
process.exit(1)
break
default:
throw err
}
}
function onListening() {
info(`SYSTEM listening on ${port} √ `)
}
server.listen(port)
}
}
/*
const createApp = () => {}
const createServer = () => {}
const run = (port) => {
const app = createApp()
const server = createServer(app)
server.listen(port)
}
*/