基于vue全家桶和express后台的完整博客系统

基于vue全家桶和express后台的完整博客系统

JavaScript Vue.js相关

详细介绍

项目地址

7月24日更新

  • 移动端响应改得差不多了

7月21日更新

  • 文章列表和评论列表的日期显示为几分钟前、几小时前,1分钟内显示“刚刚”
  • 开始做手机端的响应,还有很多问题没有解决

7月18日更新

  • 开始没动脑子出了个bug:这是多人系统,别人也在发帖和评论,因此评论以后应该重新从服务器获取一下正文页面的数据。
  • 日期方面借助了moment.js,原生的转格式太麻烦。
  • 正文可以显示作者头像和签名了,注册时签名限制在30字以内。
  • myArticles和user这两个路由合并了。
  • 现在不能发布空评论了。
  • 新的待解决问题:“我的”这个按钮由于改成a标签所以不能有router-link-active样式了,但是即使写成router-link,在其他地方通过点击用户名进入自己主页时,也应该让这个按钮亮起来。

7月16日更新

  • 样式重做为Blizzard风格,仍然是原生CSS,flex布局真好用
  • 可以查看某个用户的个人主页(头像签名文章),所有能看见人名的地方,点进去都是他的主页,然后发现myArticles和user这两个路由可以合并的,明天再做吧。

7月10日更新:

  • 处理了日期排序问题,主要是注意date类型和字符串类型的转换,利用Date.parse()和new Date(xxx)

1. 简介

  • 具备基本功能的论坛/博客系统。用的是vue全家桶,nodejs的express框架做后台,JSON文件保存数据,暂未使用数据库
  • 主要技术:vue.js | vue-cli(webpack) | vuex | vue-router | axios | node.js | express
  • 样式使用原生CSS编写,用到了flex。
  • 后面有时间会把开发过程和一些思考写下来。

2. 详细功能

2.1 注册登录部分

  • 文本框失去焦点时校验:非空、格式、查重
  • 头像上传 FileReader API (Opera mini不支持)
  • 头像和自我介绍可以为空,将采用默认头像
  • cookie保存用户登录状态

2.2 主页部分

  • 分为“论坛” “用户主页” “发帖” “正文” 四个部分。

2.2.1 文章列表

  • 文章列表和评论列表按最后修改时间倒序排列。
  • 文章列表为空时显示“没有文章”

2.2.2 正文页

  • 三个功能:评论,修改,删除。
  • 评论列表为空时显示“暂无评论”
  • 只有自己的文章才能修改删除

2.2.3 新建和修改文章

  • 如果未发布直接离开,弹出模态框,有返回、保存、放弃三个选项
  • 试图发布空内容将被阻止,并在placeholder进行提示
  • 如果标题或内容全都为空,直接离开不弹出模态框,视为放弃修改

3. 进一步优化方向

3.1 整体性:

  • 移动端响应
  • 目前文章编辑是用textarea,将来可以加入编辑器API
  • 目前用json来保存所有信息,后面学一下MongoDB数据库

3.2 功能性:

  • 分页
  • 切换路由后,滚动条滚动到合适的位置
  • 管理员账号可以删除所有人的文章和评论,并可置顶文章
  • 可以删除自己的评论
  • 别人评论你,收到通知
  • 如果进入注册页面时直接点注册按钮,不能触发blur,目前是在注册按钮时再验证一下非空,最好的解决方法应该是自动获取焦点。
  • 目前在任何路由页面刷新都会回到首页
  • 上传头像大小限制或压缩,修改头像签名

3.3代码规范:

  • 错误处理不够完善
  • var改成let或const
  • CSS样式的管理,目前是写到对应的组件下,方便检查
  • 各个组件有没有需要提出来的公共方法
  • 没有使用vuex的map映射
  • JSON数据的组织形式
推荐源码