项目分析

整个项目是基于 Egg.js 作为上层架构,通过 Egg.js 为我们提供的一些预定好的开发形式,我们轻松地完成了下列下面十二个接口的开发:

  1. 'use strict';
  2. /**
  3. * @param {Egg.Application} app - egg application
  4. */
  5. module.exports = app => {
  6. const { router, controller, middleware } = app;
  7. const _jwt = middleware.jwtErr(app.config.jwt.secret); // 传入加密字符串
  8. /** 1.注册 */
  9. router.post('/api/user/register', controller.user.register);
  10. /** 2.登陆 */
  11. router.post('/api/user/login', controller.user.login);
  12. /** 3.获取用户信息 */
  13. router.get('/api/user/get_userinfo', _jwt, controller.user.getUserInfo);
  14. /** 4.修改用户信息 */
  15. router.post('/api/user/edit_userinfo', _jwt, controller.user.editUserInfo);
  16. /** 5.上传图片 */
  17. router.post('/api/upload', controller.upload.upload);
  18. /** 6.获取消费类型列表 */
  19. router.get('/api/type/list', _jwt, controller.type.list);
  20. /** 7.添加账单 */
  21. router.post('/api/bill/add', _jwt, controller.bill.add);
  22. /** 8.账单列表 */
  23. router.get('/api/bill/list', _jwt, controller.bill.list);
  24. /** 9.账单详情 */
  25. router.get('/api/bill/detail', _jwt, controller.bill.detail);
  26. /** 10.修改账单 */
  27. router.post('/api/bill/update', _jwt, controller.bill.update);
  28. /** 11.删除账单 */
  29. router.post('/api/bill/delete', _jwt, controller.bill.delete); // 删除账单
  30. /** 12.统计数据 */
  31. router.get('/api/bill/data', _jwt, controller.bill.data);
  32. };

本项目虽然不是很大,但是本项目包含了几个关键的知识点:

  • 多用户鉴权
  • 一套增删改查
  • 表数据的二次处理(图表)
  • 列表分页的制作
  • 文件数据上传

可以说“麻雀虽小、五脏俱全”。

如果你想要在此基础上拓展一些新的功能,如朋友圈、笔记、博客等,都是可以基于该项目进行二次开发的,因为多用户鉴权的架子已经搭建好,后续要做的就是添加表,以及一些业务逻辑上的处理。
当然,如果你想做更为复杂的项目,比如一个商城。那涉及到的内容可能就更多了,单论商品模块的后台编辑,前台展示,就涉及到 sku、购物车、库存的处理、多图上传、详情编辑、类型筛选等等。这就很考验同学们的知识储备和解决问题的能力了。