黑马-大事件项目(总结+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前缀拼接,请注意按需修改
黑马-大事件项目(总结+BUG修复)相关推荐
- 45 大事件项目 => [01] 后台管理项目ajax练习
目标 利用Git管理大事件项目代码 安装并且使用 Live Server插件 学会查阅layui文档 绘制出登录注册页面结构 添加表单元素自定义验证规则 查阅接口文档完成登录注册功能 知道iframe ...
- 《先驱者》服务器修复,Steam一周大事件:先驱者服务器修复,1分钟掉线3次将成历史?...
哈喽大家好,这里是游戏日报的甜喵.本周Steam平台不仅有多款游戏进行了版本更新,包括波兰蠢驴在内的不少厂商都有新动作.同时Steam平台还上架一些口碑好游戏,接下来就和大家聊聊本周发生了哪些大事件吧 ...
- 《先驱者》服务器修复,Steam一周大事件:先驱者服务器修复,1分钟掉线3次不再可能...
哈喽大家好,这里是游戏日报的甜喵.本周Steam平台不仅有多款游戏进行了版本更新,包括波兰蠢驴在内的不少厂商都有新动作.同时Steam平台还上架一些口碑好游戏,接下来就和大家聊聊本周发生了哪些大事件吧 ...
- Node — 第七天 (大事件项目接口实现一)
关于JS错误处理 node中和mysql中的错误处理 node和MySQL提供的方法,已经对错误信息进行了封装,只需要使用 err.message 即可获取到错误信息. 比如: const fs = ...
- Ajax — 大事件项目(第二天)
大事件-02 fix一个bug 原因: 开始做注册的时候,页面中只有一个 name=password的input,所以 $('input[name="password"]') 可以 ...
- Ajax — 大事件项目(第三天)
大事件-03 用户信息 表单验证 html中,直接使用layui提供的内置验证规则 email <input type="text" name="email&quo ...
- Ajax — 大事件项目(第四天)
分类管理 添加分类 初步使用弹出层 给 "添加分类" 绑定一个单击事件 单击事件中,使用 layer.open() 实现一个弹出层 type: 1, 弹层的类型是页面层 title ...
- Ajax — 大事件项目(第一天)
应用的前端技术 Ajax (重要) - jQuery方式接口请求 Layui 框架使用 HTML + CSS + JS 项目说明和演示 线上 DEMO 项目地址:http://www.liulongb ...
- 超详细讲解大事件项目api接口
文章目录 1. 初始化 1.1新建项目 1.2 配置 cors 跨域 1.3 配置解析表单数据的中间件 1.4 初始化路由相关的文件夹 1.5 初始化用户路由模块 1.6 抽离用户路由模块中的处理函数 ...
最新文章
- [Java] 实验4參考代码
- android apk瘦身之 图片压缩 tinypng
- C++ 堆、栈、自由存储区、全局静态存储区和常量存储区
- Android KeyStore流程
- Bootstrap3.0 栅格系统背后的精妙魔法(Bootstrap3.0的栅格布局系统实现原理) - willian12345...
- rmmod无法卸载驱动_AMD芯片组驱动更新:优化了RYZEN CPU供电调节
- scipy.special —— 排列、组合与阶乘
- Atcoder Grand Contest 036 D - Negative Cycle
- 自定义新浪微博分享按钮
- 2022-2027年中国苹果树种植行业市场全景评估及发展战略规划报告
- ActiveMQ学习笔记(4)----JMS的API结构和开发步骤
- 电脑b站html加速播放,b站视频怎么加速播放-将B站视频调速播放的方法 - 河东软件园...
- ChatGPT 爆火!谷歌、微软、百度纷纷下场?
- 知识图谱论文阅读(八)【转】推荐系统遇上深度学习(二十六)--知识图谱与推荐系统结合之DKN模型原理及实现
- AI可能真的要代替插画师了……
- 脑图神器 XMind ZEN
- Anti-pattern
- 计算机网络体系结构i层,计算机网络体系结构及协议之网际互连IBEBEE
- Lodop中页眉页脚的实现
- jQuery事件之鼠标事件(转)