Node项目之评分系统(一)- 基本介绍

最近半个月,一直在学习 Node 的 Web 开发,使用的 Web 的框架为 express,模版引擎最后还是选用了 ejs,相对于 jade 不需要学习新的语法规则,并且方便粘贴一些 HTML 代码片段,减轻了前端设计的好多工作,而更多的注重在后台业务逻辑的设计。

前端 CSS 框架直接选用的 bootstrap,简单配置并且能得到不错的页面外观。最后数据库选择的是Mysql,没别的原因,相对熟悉一点,不过也在学习 mongodb 相关的知识,这个小的评分系统就直接使用 MySQL 做了。

所以这里针对 Node Web 项目的开发,在技术选择上是非常中庸的,如下:

  • Web框架: Express,没有选择 Koa 是因为还不了解两者的本质区别;
  • 模版引擎:ejs,没有选择 jade 仅仅是因为懒,不想重新学习语法,最重要的是网上 HTML 片段可以直接贴到ejs中使用,而 jade 不行;
  • CSS框架:bootstrap,暂时不知道有其他的选择;
  • 数据库:Mysql,前期仅仅为了熟悉,不过正在学习 mongodb,后面项目开发应该会选用Mongodb;

第一次使用 Node 做 Web 的开发,学习 Node 的相关知识其实也有一段时间了,只是从来没有动手写过一个完整的项目,这个评分系统可以算是我的第一个 Node Web 项目了。

最初想法

最初的想法是给部门学习会的评分使用,以往都是通过聊天工具发消息给统计人员,然后通过 excel 来统计评分以及计算平均分,这种方式感觉实在是太 low 了,并且碍于面子,所得分数基本没有差异化,于是秉着公正,公平,公开的理念,有了最初的想法。

实现的功能

  • 统计平均分,实时显示
  • 每个IP只允许投一次票
  • 管理员才可以添加、修改、删除等功能
  • 前台可以查看投票详情,但是看不到投票者IP

界面设计

全部使用 bootstrap 的基本组件,没有写一句 CSS 代码,前台页面分为 indexshow,后台页面有 adminloginedit 以及 showshow 页面公用,如果是管理员,显示出投票者 IP 以及可以做删除操作。界面样式如下图所示:

前台:

首页index

查看页show

后台:

登陆页login

后台首页admin

后台查看页show

后台编辑页edit

不足

  • 没有做用户管理(注册,登陆等)。由于在内网,并且使用并不是很频繁,没有考虑做用户管理,管理员用户直接在数据表中插入数据进行的账户密码验证。
  • 没有使用布局模版。由于页面比较少并且简单,编写前台页面的时候没有做模版复用,views 文件夹每个 ejs 文件代表一个页面。
  • 没有使用 js 以及 ajax 等异步验证功能。登陆页面直接后台逻辑匹配并刷新页面。

当然还有代码质量上的一些问题就不一一列举了,由于本人编程水平实在一般,第一次写 Node Web 项目,业余两天内完成的,诸多纰漏在所难免,忘见谅。

这里主要记录了该评分系统的一些基本信息,后面接着介绍一下,一些功能的具体实现,希望能帮到正在学习 Node Web 开发的诸位。