项目分析
整个项目是基于 Egg.js 作为上层架构,通过 Egg.js 为我们提供的一些预定好的开发形式,我们轻松地完成了下列下面十二个接口的开发:
'use strict';
/**
* @param {Egg.Application} app - egg application
*/
module.exports = app => {
const { router, controller, middleware } = app;
const _jwt = middleware.jwtErr(app.config.jwt.secret); // 传入加密字符串
/** 1.注册 */
router.post('/api/user/register', controller.user.register);
/** 2.登陆 */
router.post('/api/user/login', controller.user.login);
/** 3.获取用户信息 */
router.get('/api/user/get_userinfo', _jwt, controller.user.getUserInfo);
/** 4.修改用户信息 */
router.post('/api/user/edit_userinfo', _jwt, controller.user.editUserInfo);
/** 5.上传图片 */
router.post('/api/upload', controller.upload.upload);
/** 6.获取消费类型列表 */
router.get('/api/type/list', _jwt, controller.type.list);
/** 7.添加账单 */
router.post('/api/bill/add', _jwt, controller.bill.add);
/** 8.账单列表 */
router.get('/api/bill/list', _jwt, controller.bill.list);
/** 9.账单详情 */
router.get('/api/bill/detail', _jwt, controller.bill.detail);
/** 10.修改账单 */
router.post('/api/bill/update', _jwt, controller.bill.update);
/** 11.删除账单 */
router.post('/api/bill/delete', _jwt, controller.bill.delete); // 删除账单
/** 12.统计数据 */
router.get('/api/bill/data', _jwt, controller.bill.data);
};
本项目虽然不是很大,但是本项目包含了几个关键的知识点:
- 多用户鉴权
- 一套增删改查
- 表数据的二次处理(图表)
- 列表分页的制作
- 文件数据上传
可以说“麻雀虽小、五脏俱全”。
如果你想要在此基础上拓展一些新的功能,如朋友圈、笔记、博客等,都是可以基于该项目进行二次开发的,因为多用户鉴权的架子已经搭建好,后续要做的就是添加表,以及一些业务逻辑上的处理。
当然,如果你想做更为复杂的项目,比如一个商城。那涉及到的内容可能就更多了,单论商品模块的后台编辑,前台展示,就涉及到 sku、购物车、库存的处理、多图上传、详情编辑、类型筛选等等。这就很考验同学们的知识储备和解决问题的能力了。