黑马-大事件项目(总结+BUG修复)
前言
最近把Nodejs和Ajax学习了一下,找到一个很不错的练手项目:黑马刘龙彬老师主讲的大事件项目,整体看完,给刘老师点个赞,讲的非常细致,开发流程清晰,涉及的知识点也很精准。另外黑马还为这个项目提供了在线接口文档,并且将后端服务器也上线发布了,真是自学小伙伴的福音啊。最后,再次给黑马程序员和刘老师点个赞。
项目介绍
项目名称
大事件
后端接口文档
说明--ShowDochttps://www.showdoc.com.cn/escook?page_id=3707158761215217
前端UI图概览
登录页
首页
文章管理-文章类别
文章管理-文章列表
文章管理-发布文章
个人中心-基本资料
个人中心-更换头像
个人中心-重置密码
知识点
前端
html,css,字体图标,layui
js,jquery,ajax,formData
template, tinymce, cropper
后端
nodejs,express服务器,静态资源托管,cors跨域,jwt身份认证,bscript不可逆加密,joi请求字段验证,multer解析formData格式数据,promisify和promise,async和await异步编程
mysql
版本管理
git
项目源码、数据库表、postman测试工程下载
GitHub - qwx427219/BigEvent: 黑马大事件项目黑马大事件项目. Contribute to qwx427219/BigEvent development by creating an account on GitHub.https://github.com/qwx427219/BigEvent.git
项目源码将刘老师未开发的功能完成,包括
前端:
文章管理-文章列表-编辑 功能
后端:
完成了以下接口的开发
/my/article/list
/my/article/delete/:id
/my/article/:id
/my/article/edit
项目源码解决了刘老师已开发的功能的部分BUG,包括
前端issue:
发布文章成功后,发布文章页面会自动跳转到了文章列表页面,但是左侧导航栏未跟随变动
后端issue:
涉及到新增的部分接口,如
新增文章分类接口/my/article/addcates,在第一次新增失败后,报错
Error 【ERR_HTTP_HEADERS_SENT】: Cannot set headers after they are sent to the client。原因是:return res.send() 或者 return res.cc()没有起到终止外层函数后续代码执行的效果。
项目源码整合了前后端代码,将它们部署在同一个服务器上
整理了postman测试工程
整理了数据库建表sql
CREATE SCHEMA `my_db_01` ;
CREATE TABLE `my_db_01`.`en_users` (
`id` INT NOT NULL AUTO_INCREMENT,
`username` VARCHAR(255) NOT NULL,
`password` VARCHAR(255) NOT NULL,
`nickname` VARCHAR(255) NULL,
`email` VARCHAR(255) NULL,
`user_pic` TEXT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
UNIQUE INDEX `username_UNIQUE` (`username` ASC) VISIBLE)
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8mb4
COLLATE = utf8mb4_0900_ai_ci
COMMENT = '用户信息表';
CREATE TABLE `my_db_01`.`en_articles` (
`id` INT NOT NULL AUTO_INCREMENT,
`title` VARCHAR(255) NOT NULL,
`content` TEXT NOT NULL,
`cover_img` VARCHAR(255) NOT NULL,
`pub_date` VARCHAR(255) NOT NULL,
`state` VARCHAR(255) NOT NULL,
`is_delete` TINYINT(1) NOT NULL DEFAULT 0,
`cate_id` INT NOT NULL,
`author_id` INT NOT NULL,
PRIMARY KEY (`id`),
UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE)
COMMENT = '文章信息';
CREATE TABLE `my_db_01`.`en_article_cate` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(255) NOT NULL,
`alias` VARCHAR(255) NOT NULL,
`is_delete` TINYINT(1) NOT NULL DEFAULT 0 COMMENT '文章分类是否是被删除\n0 表示 未被删除\n1 表示 已被删除',
PRIMARY KEY (`id`),
UNIQUE INDEX `id_UNIQUE` (`id` ASC) VISIBLE,
UNIQUE INDEX `name_UNIQUE` (`name` ASC) VISIBLE,
UNIQUE INDEX `alias_UNIQUE` (`alias` ASC) VISIBLE)
COMMENT = '文章分类信息';
请大家注意下:我这里提供的sql语句是通过MYSQL8.0.19版本导出的,如果大家使用的MYSQL版本过低,可能执行上面sql语句时会报错:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version ....
有两个解决方案:
- 更新下自己的MYSQL数据库版本(彻底解决问题)
- mysql 数据库高版本迁移到低版本问题 - 今天的诸葛亮 - 博客园 (cnblogs.com)
额外说明
1、由于后端代码没有上传node_modules文件夹,所以第一次使用前,请对后端工程执行npm install下载项目依赖的第三方模块
2、注意后端对接数据库的配置在api_server/db/index.js中,请将数据库用户名和密码换成自己的
3、jwt字符串有效期8h,若要不合适,请到api_server/config.js中修改
4、前端工程中ajax请求触发前都要先执行 assets/js/ajaxPre.js,ajax请求的url前缀拼接,请注意按需修改
相关文章
- cnblogs的编辑器BUG反馈:发布或编辑文章完成后,页面是卡死状态的
- 化解日常Bug的50个大法(覆盖数据库、代码层面、缓存)
- win8下IE10的鼠标mouse事件响应错误BUG
- TypeError: 'bases' is null or not an object。IE8 bug 腐朽的对象
- 使用 Arthas 排查 SpringBoot 诡异耗时的 Bug
- bug--常见的bug总结:
- 【bug】Unable to execute dex: Multiple dex files define
- 【刷题】游戏测试常见Bug
- 数据库内核月报 - 2015 / 09-MySQL · 捉虫动态 · BUG 几例
- Lead saved query bug
- 成功解决算法模型在预测的时候model.predict(X_test)其预测功能戛然而止且代码无bug的无提示的无法继续向下运行代码而在当前直接退出
- 成功解决极其刁钻bug之TypeError: ‘<=‘ not supported between instances of ‘list‘ and ‘int‘
- [C++]佛祖保佑,永无bug。C++ BUG解决方案
- 线上紧急问题,如宕机、卡顿、bug等,如何快速反应和解决,具体解决方案
- Ibatis2.3.4的一个bug
- ORA-01791: not a SELECTed expression 一种是不 bug 的 bug!
- 抢车位中的排名bug(比較使用了无符号数)
- 遇到bug怎么分析,看看字节30k测开工程师的总结(受益匪浅)
- ambari安装过程中的一些误区(跳坑指南)(ambari的两个bug修复)
- getTime()方法在苹果系统的bug