「项目实战」.学生成绩管理系统之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

相关推荐

  • 最强听书软件,安卓、苹果都能用,小说党千万别错过(听书小说app)

    最强听书软件,安卓、苹果都能用,小说党千万别错过(听书小说app) 小编当年的读书生活中,除了吃饭、睡觉和学习,唯一的娱乐就是看小说了。可惜当时电子科技的发展缓慢,只能用手机来看小…

    科研百科 2024年3月29日
    139
  • 项目管理用什么系统(项目管理用什么系统好)

    益企工程云工程项目管理系统是一款面向工程行业提供数字化解决方案的产品,主要服务于中小型工程企业,为其提供数字化转型和升级的支持。 深度结合建筑企业业务场景,为工程项目提供全过程管理…

    科研百科 2023年10月29日
    151
  • 消防项目管理系统是什么

    消防项目管理系统是什么? 消防项目管理系统是一种用于管理消防项目的软件系统,能够帮助项目经理和相关人员有效地协调和管理项目进展,提高项目的效率和质量。 消防项目管理系统通常包括以下…

    科研百科 2025年6月6日
    0
  • 水电工程项目管理

    水电工程项目管理 水电工程项目管理是水电建设行业的核心内容之一,涉及到项目管理的各个方面,包括投资决策、工程设计、施工管理、质量控制和项目管理等。本文将从水电工程项目管理的角度出发…

    科研百科 2024年8月31日
    38
  • 科研项目用地控制指标

    科研项目用地控制指标 科研项目的用地控制指标是确保科研项目顺利实施、达到预期目标的关键因素之一。这些指标通常由政府部门或相关机构制定,并经过科学计算和评估,以确保土地的使用不会对科…

    科研百科 2025年3月26日
    2
  • ppp项目管理要点

    PPP项目(Public-Private Partnerships)是指政府与私人企业合作建设基础设施项目的一种方式,通常涉及到能源、交通、通信、水利等领域。在PPP项目中,政府向…

    科研百科 2024年9月24日
    23
  • 医院管理者必须知道的医院CRM客户管理系统(医院crm管理软件)

    作者:广州砺扬泰 随着我国医疗体制改革的深化和医疗事业的发展,医疗市场竞争逐渐加剧,医院管理模式正由以医院管理为中心向以患者管理为中心转变。 对于医院而言,患者管理即客户关系管理。…

    科研百科 2024年4月27日
    109
  • 科研项目中材料费包括哪些科研项目中材料费包括哪些

    科研项目中材料费的组成和用途 材料费是科研项目中不可或缺的一部分,它包括用于购买实验材料、设备、软件和其他辅助材料的的费用。在科研项目中,材料费的数额通常取决于研究项目的性质和复杂…

    科研百科 2024年6月14日
    741
  • 阿拉绿化市容人丨“一路一色、一园一品”

    以前,经常听别人提起新江湾城(淞沪路以东区域)满目绿色、环境优美,但因为每条道路与周边的绿地景观十分接近,不看路牌完全不知道身在何处。近年来,越来越多在新江湾城生活、工作过的人表示…

    科研百科 2023年7月1日
    252
  • 种好基层党建“责任田”(种好基层党建责任田)

    抓好党建是最大政绩。能不能把党建工作落到实处,确保党的领导坚强有力,考验着各级党组织的治理能力和工作水平。 云南省近年来围绕健全完善基层党建工作责任落实体系,抓述职考核,倒逼管党治…

    科研百科 2023年6月21日
    208