「项目实战」.学生成绩管理系统之Web API服务器(一)(基于web的学生成绩管理系统)

本项目涉及的内容过多,将分为三篇文章进行展示,第一篇文章整体介绍这个项目的情况,包括项目的功能和相关技术,还提供了项目中使用到的数据类型和路由信息等;第二篇文章重点介绍学生路由信息相关内容;第三篇则重点介绍成绩路由信息相关内容。

每一个人在学习计算机编程的过程中,基本上都曾经开发过一个《XX管理系统》的软件。比如刚刚学习完成C语言编程,通常会编写一个基于文件的学生成绩管理系统;学习了网络TCP/IP相关技术,会创建一个客户端和一个服务器,同样可以实现一个网络版的学生成绩管理系统。本项目为了便于学习,也无法跳出软件管理系统的范畴,它实现一个Web版本的学生成绩管理系统,这是一个Web API服务器项目,接收来自客户端提供学生成绩信息,这些客户端请求都是JSON格式的消息,Web服务器同样将消息以JSON格式进行编码,之后发送给客户端程序。服务器端实现对外部提供管理学生及其成绩的数据Web API接口。

提供一个基于Web API的网络服务器,使用HTTP(S)协议进行访问。项目设计了两种类型的数据:一种是用以表示学生信息的数据,另一种是表示学生的各个学科考试成绩的数据。学生的属性信息在下表1中进行了详细说明。

名称

类型

含义

id

数字

学生编号

firstName

字符串(必须)

名称

lastName

字符串

姓氏

emailAddress

字符串(必须)

电子邮件地址

grade

数字

年级

clazz

数字

班级

表1

成绩信息表记录了每一个学生的每一学科考试成绩值,为了简化起见,我们将学生与成绩之间的关系限制为1:1关系,即一条学生信息对应一条成绩信息,本项目不涉及多次考试和多学期考试等信息,成绩信息表记录的内容如表2所示:

名称

类型

含义

id

数字

得分Id值

studentId

数字

对应的学生Id值

math

数字

数学成绩值

chemistry

数字

化学成绩值

physics

数字

物理成绩值

表2

在表2中,第2行表示每一个成绩值所对应的一个学生编号值,即通过这个学生编号,我们就可以在学生表中查找到对应的学生信息,使用这两个表的信息可以构建出整个表示学生考试成绩的情况。

整个服务端应用提供的Web API的功能也分为两大类:一类API用以处理学生的信息,另一类API用以处理考试成绩数值的信息。

本项目应用运行在Node.js平台上,使用Express.js Web应用开发框架进行开发这个应用程序。Node.js作为一种使用Javascript编程语言运行的后端技术,极大的方便了Javascript开发者向后端技术转移,整个Javascript的生态也极其完善。Express.js作为Node.js平台上的一个开发框架,它的用法简单,对于客户端响应快速,整个应用也足够强健,深受开发者的喜爱,而且基于这个框架还衍生出好多其它框架,因此熟悉了Express.js框架之后对于后续学习Node.js Web开发技术是很有帮助的。

本项目使用express生成器构建整个应用的框架,开发过程中使用了express的路由技术、方法处理器、路径参数、消息体解析等。这些内容在Web应用开发中经常会用到,下文中会进行重点介绍。

项目的目录结构保持express生成器构建的层次结构,为了将数据存储起来,添加了一个新的目录store用以存放数据,这个目录中目前只包含一个文件store.js,如图1所示。文件store.js中创建一个内存数据库(实际上只是一个含有两个属性的对象),每一个Web的请求交互都会使用这个文件中的数据,或是保存或是读取数据。

「项目实战」.学生成绩管理系统之Web API服务器(一)(基于web的学生成绩管理系统)

图1

在routes目录下增加了一个新的路由文件students.js,大部分代码位于这个文件中,它定义了学生信息和得分信息的路由及其处理器,定义的路由信息见表3

路径

方法

描述

/students

GET

获取所有学生信息列表

/students

POST

创建一个学生信息

/students/:studentId

GET

获取一个学生信息

/students/:studentId

DELETE

删除一个学生信息

/students/:studentId

PUT

修改一个学生信息

/students/scores

GET

获取所有学生成绩信息列表

/students/scores

POST

创建一个学生成绩信息

/students/scores/:studentId

GET

获取一个学生成绩信息

/students/scores/:studentId

PUT

修改一学生成绩信息

表3

表3只给出了对应的路由信息及其对应的含义,但并没有描述请求时所需要的其它参数,比如创建学生信息时,这些信息都是存在于在消息体中,因此,在处理相关操作时还需要读取消息体的内容。接下来的文章将按照上表3中列出的路由逐一进行介绍。

学生信息和成绩信息的路由都是在students.js文件中定义的,通过使用require语句将students路由引入至app.js文件中,如下图2所示

「项目实战」.学生成绩管理系统之Web API服务器(一)(基于web的学生成绩管理系统)

图2

之后就可以通过studentsRouter变量访问此路由器了,这个路由器是一个Express.js的标准中间件,我们通过.use方法来使用它,如下图3代码所示:

「项目实战」.学生成绩管理系统之Web API服务器(一)(基于web的学生成绩管理系统)

图3

图3第22行代码表示在路径/students上挂在了对应的路由器中间件,在此路由器中定义的路由一次为挂载点进行路径构建。

在进行详细介绍之前,首先展示下这些信息在服务器端是如何存储的。我们使用了store.js进行构建一个内存数据库,实际上它就是一个对象,存放着两个属性值:一个名称为students数组,存放所有的学生信息数据;另一个名称为scores数组,存放着所有的成绩信息数据,依据客户端发送的请求类型对这两个数据进行相对应的增删改查和运算操作。

本文为Web API服务端开发第一篇文章,此项目一共分为三篇进行介绍,第二篇重点介绍学生信息路由处理逻辑。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年6月26日 上午10:58
下一篇 2022年6月26日 上午11:00

相关推荐

  • 科研经费预算怎么写

    科研经费预算怎么写 随着科技的不断进步,科研经费已经成为许多科学家和研究人员必不可少的资源。科研经费预算怎么写是一项重要的工作,它关系到科学家和研究人员是否能够获得足够的资源来开展…

    科研百科 2024年11月19日
    7
  • 「图书推荐」钢铁质量检验技术(钢铁质量检测都有哪些)

    冶金工业出版社 本钢板材股份有限公司检化验中心 著 内容介绍 《钢铁质量检验技术》一书紧密结合冶金企业的发展需求,以实验室质量管理体系的建设和规范运行为载体,突出实用性,着重经验、…

    科研百科 2024年4月19日
    97
  • 内容管理系统项目总结

    内容管理系统项目总结 随着互联网的发展,内容管理系统已经成为了企业、组织或个人的重要工具。本文将对我所参与的内容管理系统项目进行总结。 项目概述 我们团队负责开发一个内容管理系统,…

    科研百科 2025年1月6日
    1
  • 整个深圳都在考的入户证书—系统集成项目管理工程师(系统集成项目管理工程师入户深圳条件)

    本文只从入户的角度分析这个系统集成项目管理工程师证书 一、证书介绍:系统集成项目管理工程师,中级职称, 科目包括:(1)基础知识,考试时间为150分钟,笔试,选择题; (2)应用技…

    科研百科 2022年11月6日
    473
  • 电子文档合同管理

    电子文档合同管理:现代合同管理的新趋势 随着数字化时代的到来,电子文档合同管理已经成为现代合同管理的新趋势。电子文档合同管理系统不仅可以提高合同管理的效率和准确性,还可以减少合同管…

    科研百科 2024年8月31日
    37
  • 江永:“四共”模式加强离退休干部党建工作(推进离退休干部党建工作)

    红网时刻新闻5月29日讯(通讯员 毛建军)今年以来,通过共建、共促、共享、共抓“四共”的工作模式,全面加强离退休干部党建工作,有效全县经济社会高质量发展注入“银发动能”。 支部共建…

    科研百科 2023年6月20日
    157
  • 王志功科研项目

    王志功科研项目 近年来,中国的科技实力不断发展壮大,其中最为引人注目的是对人工智能的研究。为了推动人工智能的发展,中国许多科研机构和企业纷纷加大对人工智能领域的投入。其中,王志功科…

    科研百科 2025年3月24日
    0
  • 科研项目主评人

    科研项目主评人:XXX XXX是一位出色的科研项目主评人,她在科研项目评审过程中发挥了重要的作用。她具有丰富的经验,和对学术研究的热情,为许多优秀的科研项目提供了宝贵的评审意见。 …

    科研百科 2025年3月4日
    0
  • 思维导图科研项目

    思维导图科研项目 思维导图是一种简单而有效的思维工具,可以帮助人们理清思路,加深对问题的理解。近年来,思维导图在科学研究、教学、管理等领域得到了广泛应用。本文将介绍一种基于思维导图…

    科研百科 2025年3月22日
    2
  • 学籍管理系统的项目背景

    学籍管理系统的项目背景 随着教育事业的发展,学校和教育机构越来越多,学生和教师的数量也在不断增加。为了有效地管理学校和教育机构的数据,需要一个高效的学籍管理系统。 该系统旨在帮助学…

    科研百科 2025年6月6日
    0