Skip to content

webitlee/Node.js-exam-system

Repository files navigation

Node.js-exam-system

  • 使用Node.js作为后端服务器,的面试考题系统。其中用到了koa2\Sequlize
  • 关于如何开发Node.js服务器,请移步至我的博客
  • 本人是Node.js的学习者,由于能力有限,如发现问题欢迎与我联系
  • 本项目会在本人闲暇之余持续更新至完成版
  • 希望广交朋友,让我们一起进步,QQ:844412622
  • 如果您觉得我的代码对您有一点点启发,请给个Star这是对我最大的鼓励

结构说明(按文件结构,由上至下)

  1. controllers文件夹:存放了设置所有路由接口的代码,并对外暴露
  2. dao文件夹:存放了所有直接操作数据库的相关代码
  3. models文件夹:存放了所有数据表的ORM映射
  4. node_modules文件夹:Node用于存放package.json中声明引入的各种包
  5. service文件夹:存放所有有关事务的相关代码
  6. app.js文件:服务器的入口文件
  7. config.js文件:配置数据库入口模块
  8. constructor-sequelize.js文件:用于创建一个已配置的Sequelize实例的模块
  9. controller.js文件:扫描并注册controllers文件夹下所有路由配置的模块
  10. cors.js文件:解决跨域问题(koa-cors)的相关配置
  11. db.js文件:抽象出生成所有ORM文件的统一格式模板
  12. import-middleware.js文件:导入文件夹中的所有中间件的模块
  13. init-db.js文件:数据库自动建表模块
  14. relationship.js文件:设置表之间的依赖关系的模块

通过ORM自动生成的表结构如下

1.exam表:

列名 数据类型 PK NN AI
id BIGINT(20)
title VARCHAR(200)
content TEXT
type INT(9)
createdTime BIGINT(20)
modifiedTime BIGINT(20)
scope_id BIGINT(20)
2.answer表:
列名 数据类型 PK NN AI
id BIGINT(20)
option VARCHAR(100)
is_right TINYINT(1)
createdTime BIGINT(20)
modifiedTime BIGINT(20)
exam_id BIGINT(20)
3.mistake表:
列名 数据类型 PK NN AI
id BIGINT(20)
createdTime BIGINT(20)
modifiedTime BIGINT(20)
user_id BIGINT(20)
exam_id BIGINT(20)
4.scope表:
列名 数据类型 PK NN AI
id BIGINT(20)
name VARCHAR(100)
createdTime BIGINT(20)
modifiedTime BIGINT(20)
5.todo表
列名 数据类型 PK NN AI
id BIGINT(20)
option VARCHAR(100)
is_complete TINYINT(1)
createdTime BIGINT(20)
modifiedTime BIGINT(20)
status_id BIGINT(20)
6.todo_status表:
列名 数据类型 PK NN AI
id BIGINT(20)
name VARCHAR(50)
createdTime BIGINT(20)
modifiedTime BIGINT(20)
7.user表:
列名 数据类型 PK NN AI Default
id BIGINT(20)
name VARCHAR(100)
gender TINYINT(1)
scope INT(10) 0
correct INT(10) 0
mistake INT(10) 0
createdTime BIGINT(20)
modifiedTime BIGINT(20)
scope_id BIGINT(20)

参考资料

About

使用Node.js作为后端服务器,的面试考题系统。其中用到了koa2\Sequlize

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published