主管评测平台项目总结
项目介绍
一种网页端的听测系统,详情见 项目分析
负责内容
在该项目中我主要负责node后端部分,采用koa框架,提供路由和业务api接口
koa框架
【特点】
-
通过基于Promise的异步编程,koa应用可以不使用回调(callback),大大提高了开发效率。
- koa使用async/await语法来实现异步编程,而express框架是基于事件回调的(callback),这是二者的主要差别之一
- 通过 Bluebird 模块可以将node.js 回调风格的函数封装为Promise
-
koa本身不捆绑任何中间件,即koa核心是 “纯净的”,这是与express的第二个主要差别(主要就这俩差别,其他相似)
-
koa的中间件模型为 “洋葱模型”,如下图所示,请求从左边进入,有序经过中间件处理,最终从右边输出响应。(所以中间件会执行两次)
-
koa中很关键的一个对象为Context,又称“上下文”
- 该对象包含了Koa请求对象、Koa响应对象和应用实例,Context可以理解一个容器,该容器挂载了本次请求的请求对象和响应对象等信息
数据库
采用的数据库为mysql,通过 Sequelize 模块进行数据库增删改查等操作。
Sequelize
特点:
- Sequelize 属于ORM(Object relationship Mapping,对象关系映射)框架,该框架就是将数据库中的术语映射为面向对象编程的概念,如:
- 数据库——>类
- 数据行——>类实例
- 数据列——>实例属性
- Sequelize 也是nodejs的模块,基于Promise开发,和koa很适配;
- 支持MySql、PostgreSql、MS Sql等主流数据库。