server.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /////////////////MARK:必读////////////////
  2. //后来人,接受这个项目不要迷茫,不要彷徨
  3. //代码逻辑混乱,接口数据有问题,请你坚持下去
  4. //谨记,请勿辱骂前人
  5. import Koa from 'koa';
  6. import http from 'http'
  7. import convert from 'koa-convert'
  8. import logger from 'koa-logger'
  9. import cors from 'koa-cors' //跨域
  10. import bodyParser from 'koa-bodyparser' //请求体JSON解析
  11. import onerror from 'koa-onerror' //错误处理
  12. import resource from 'koa-static' //静态资源托管
  13. import path from 'path'
  14. import router from './routes'
  15. import config from '../config/config';
  16. // 同步已定义的模型到数据库
  17. // models.sync({force: true}).then(function () {
  18. // console.log('Server Success')
  19. // }).catch (function (error) {
  20. // console.log('Server Failed' + error)
  21. // })
  22. // import router from './routes';
  23. // import middlewares from './middlewares';
  24. // import cacheMiddle from './middlewares/cache';
  25. // const redisStore = koaRedis({
  26. // url: config.redisUrl
  27. // });
  28. const app = new Koa();
  29. onerror(app)
  30. app.use(convert(cors()))
  31. app.use(convert(logger()))
  32. app.use(bodyParser())
  33. app.use(resource(path.join(__dirname, '../public')))
  34. console.log(path.join(__dirname, '../public'))
  35. // app.use(json({ pretty: false, param: 'pretty' }))
  36. app.use(async (ctx, next) => {
  37. const start = new Date()
  38. await next()
  39. const ms = new Date() - start
  40. console.log(`${ctx.method} ${ctx.url} - ${ms}ms`)
  41. })
  42. // router
  43. app.use(router.routes(), router.allowedMethods());
  44. app.on('error', (error, ctx) => {
  45. console.log('奇怪的错误' + JSON.stringify(ctx.onerror))
  46. console.log('server error:' + error)
  47. })
  48. http.createServer(app.callback()).listen(config.port).on('listening', function () {
  49. console.log('正在监听端口' + config.port)
  50. })
  51. export default app;