You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

50 lines
1.2 KiB

  1. /*
  2. * @Author: hai-27
  3. * @Date: 2020-02-07 16:51:56
  4. * @LastEditors: hai-27
  5. * @LastEditTime: 2020-04-07 23:40:51
  6. */
  7. const Koa = require('koa');
  8. const KoaStatic = require('koa-static');
  9. const KoaBody = require('koa-body');
  10. const Session = require('koa-session');
  11. let { Port, staticDir } = require('./config');
  12. let app = new Koa();
  13. // 处理异常
  14. const error = require('./app/middleware/error');
  15. app.use(error);
  16. // 为静态资源请求重写url
  17. const rewriteUrl = require('./app/middleware/rewriteUrl');
  18. app.use(rewriteUrl);
  19. // 使用koa-static处理静态资源
  20. app.use(KoaStatic(staticDir));
  21. // session
  22. const CONFIG = require('./app/middleware/session');
  23. app.keys = ['session app keys'];
  24. app.use(Session(CONFIG, app));
  25. // 判断是否登录
  26. const isLogin = require('./app/middleware/isLogin');
  27. app.use(isLogin);
  28. app.use(async (ctx, next) => {
  29. ctx.state.user = ctx.session.user;
  30. await next();
  31. });
  32. // 处理请求体数据
  33. const koaBodyConfig = require('./app/middleware/koaBodyConfig');
  34. app.use(KoaBody(koaBodyConfig));
  35. // 使用路由中间件
  36. const Routers = require('./app/routers');
  37. app.use(Routers.routes()).use(Routers.allowedMethods());
  38. app.listen(Port, () => {
  39. console.log(`服务器启动在${ Port }端口`);
  40. });