最近半个月,一直在学习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以及可以做删除操作。界面样式如下图所示:

前台:

后台:

不足

  • 没有做用户管理(注册,登陆等)。由于在内网,并且使用并不是很频繁,没有考虑做用户管理,管理员用户直接在数据表中插入数据进行的账户密码验证。

  • 没有使用布局模版。由于页面比较少并且简单,编写前台页面的时候没有做模版复用,views文件夹每个ejs文件代表一个页面。

  • 没有使用js以及ajax等异步验证功能。登陆页面直接后台逻辑匹配并刷新页面。

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

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


鲁鹏
174 声望11 粉丝

伪程序员