实现首页点赞功能

思路

  1. 创建likes表,用户每次点赞微博就存一条点赞关系(userId、blogId)。blogs表中添加likeCount记录总点赞数,isLike表示当前用户是否点赞该条微博
  2. 登录后,自动将userId拿去查likes表后遍历blogList去修改isLike
  3. 前端根据isLike显示不同的点赞按钮,根据likeCount显示点赞数
  4. 点击点赞按钮后,根据前端传回的isLike来判断当前用户是否已点赞当前微博,是则likeCount-1并改变isLike为false,否则 likeCount+1并改变isLike为true

创建likes表,添加blogs中列

  1. 创建likes表:
    创建likes表likes表
  2. blogs表中添加2列:
    blogs表中添加2列blogs表

登录后改blogs表中isLike

  • 登录后,自动将当前用户的userId拿去查likes表后遍历blogList去修改isLike。
  • controller-user.js的登录路由中:
    controller-user.js的登录路由中

修改前端

  • 前端根据isLike显示不同的点赞按钮,根据likeCount显示点赞数
  • blog-list.ejs中点赞按钮的部分:blog-list.ejs
  • blog-list.ejs中点赞按钮的点击事件:blog-list.ejs

实现点赞的接口路由

点击点赞按钮后,根据前端传回的isLike来判断当前用户是否已点赞当前微博,是则likeCount-1并改变isLike为false,否则 likeCount+1并改变isLike为true。

  1. 【路由层】创建路由,传递isLike、likeCount、微博的id并调用controller层updateLikeCount函数=》返回blogData.likeCount给前端: api-blog-home.js中,创建路由:
    blog-home.js记得app.js中注册路由
  2. 【controller层】创建updateLikeCount函数=》根据isLike判断likeCount+1/-1、isLike为true/false的调用service层updateLikeCount函数更新数据库: controller下blog-home.js:
    controller下blog-home.js
  3. 【service层】创建updateLikeCount函数=》更新blogs表中likeCount与isLike: service-blog.js:
    service-blog.js
,