黑马-大事件项目(总结+BUG修复)

本文介绍了通过学习Nodejs和Ajax完成的大事件项目,包括前端和后端的关键技术,如layui、jQuery、Ajax、Express、JWT等。作者补充了项目中未实现的功能,修复了部分BUG,并提供了完整的Postman测试工程和数据库建表SQL。项目源码可在GitHub获取,需要注意数据库版本兼容性和依赖安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

最近把Nodejs和Ajax学习了一下,找到一个很不错的练手项目:黑马刘龙彬老师主讲的大事件项目,整体看完,给刘老师点个赞,讲的非常细致,开发流程清晰,涉及的知识点也很精准。另外黑马还为这个项目提供了在线接口文档,并且将后端服务器也上线发布了,真是自学小伙伴的福音啊。最后,再次给黑马程序员和刘老师点个赞。

项目介绍

项目名称

大事件

后端接口文档

说明--ShowDochttps://www.showdoc.com.cn/escook?page_id=3707158761215217https://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测试工程下载

大事件项目源码,大事件项目源码资源-优快云文库https://download.youkuaiyun.com/download/qfc_128220/88049795?spm=1001.2014.3001.5503https://download.youkuaiyun.com/download/qfc_128220/88049795?spm=1001.2014.3001.5503

项目源码将刘老师未开发的功能完成,包括

前端:

文章管理-文章列表-编辑 功能

后端:

完成了以下接口的开发

  • /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 ....

有两个解决方案:

额外说明

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前缀拼接,请注意按需修改

评论 143
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员阿甘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值