index.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import Koa from 'koa';
  2. import { PORT, HOST } from './app.config.mjs';
  3. import router from './router/index.mjs';
  4. import serve from 'koa-static';
  5. // console.log(appStatic);
  6. const app = new Koa();
  7. // 中间件的执行顺序
  8. // 通过app.use方法 去 使用中间件。多次调用 就可以 注册多个中间件
  9. // app.use((ctx, next) => {
  10. // console.log('a');
  11. // next();
  12. // });
  13. // app.use((ctx, next) => {
  14. // next();
  15. // console.log('b');
  16. // });
  17. // app.use((ctx, next) => {
  18. // console.log('c');
  19. // next();
  20. // });
  21. // app.use((ctx, next) => {
  22. // console.log('a start');
  23. // next();
  24. // console.log('a end');
  25. // });
  26. // app.use((ctx, next) => {
  27. // console.log('b start');
  28. // next();
  29. // console.log('b end');
  30. // });
  31. // app.use((ctx, next) => {
  32. // console.log('c start');
  33. // next();
  34. // console.log('c end');
  35. // });
  36. // a start, b start, c start, c end, b end, a end
  37. // app.use(async (ctx, next) => {
  38. // console.log('a start');
  39. // await next();
  40. // console.log('a end');
  41. // });
  42. // app.use(async (ctx, next) => {
  43. // console.log('b start');
  44. // await next();
  45. // console.log('b end');
  46. // });
  47. // app.use(async (ctx, next) => {
  48. // console.log('c start');
  49. // await next();
  50. // console.log('c end');
  51. // });
  52. // app.use((ctx) => {
  53. // ctx.body = 'hello, world.';
  54. // });
  55. //! 总结:中间件的执行顺序 遵循 洋葱模型
  56. // 托管静态文件
  57. app.use(serve('pages'));
  58. // 注入路由功能
  59. app.use(router.routes());
  60. // 在options请求中响应服务端支持哪些跨域的请求方法
  61. app.use(router.allowedMethods());
  62. app.listen(PORT, HOST, () => {
  63. console.info(`Server is running at 'http://${HOST}:${PORT}'`);
  64. });