思路
- 创建likes表,用户每次点赞微博就存一条点赞关系(userId、blogId)。blogs表中添加likeCount记录总点赞数,isLike表示当前用户是否点赞该条微博
- 登录后,自动将userId拿去查likes表后遍历blogList去修改isLike
- 前端根据isLike显示不同的点赞按钮,根据likeCount显示点赞数
- 点击点赞按钮后,根据前端传回的isLike来判断当前用户是否已点赞当前微博,是则likeCount-1并改变isLike为false,否则 likeCount+1并改变isLike为true
创建likes表,添加blogs中列
- 创建likes表:
- blogs表中添加2列:
登录后改blogs表中isLike
- 登录后,自动将当前用户的userId拿去查likes表后遍历blogList去修改isLike。
- controller-user.js的登录路由中:
修改前端
- 前端根据isLike显示不同的点赞按钮,根据likeCount显示点赞数
- blog-list.ejs中点赞按钮的部分:
- blog-list.ejs中点赞按钮的点击事件:
实现点赞的接口路由
点击点赞按钮后,根据前端传回的isLike来判断当前用户是否已点赞当前微博,是则likeCount-1并改变isLike为false,否则 likeCount+1并改变isLike为true。
- 【路由层】创建路由,传递isLike、likeCount、微博的id并调用controller层updateLikeCount函数=》返回blogData.likeCount给前端: api-blog-home.js中,创建路由:
记得app.js中注册路由 - 【controller层】创建updateLikeCount函数=》根据isLike判断likeCount+1/-1、isLike为true/false的调用service层updateLikeCount函数更新数据库: controller下blog-home.js:
- 【service层】创建updateLikeCount函数=》更新blogs表中likeCount与isLike: service-blog.js: