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

相关推荐

  • 基于PDM系统的项目管理概述(项目管理中的pdm是什么意思)

    随着企业对产品开发和制造的需求不断增加,PDM(Product Data Management)系统已经成为了现代生产管理的不可或缺的组成部分。在这篇文章中,我们将介绍如何利用PD…

    科研百科 2023年10月26日
    165
  • 建筑安装科研项目课题

    建筑安装科研项目课题 建筑安装科研项目课题是推动建筑行业发展的重要力量。随着城市化进程的不断加速,建筑安装科研项目课题的需求也在不断增加。本文将介绍一些常见的建筑安装科研项目课题,…

    科研百科 2025年4月28日
    1
  • 邵阳项目管理系统公司

    邵阳项目管理系统公司 邵阳项目管理系统公司是一家专注于为客户提供高品质项目管理服务的公司。我们提供全面的项目管理解决方案,帮助企业提高项目管理水平,降低管理成本,提高工作效率。 作…

    科研百科 2024年12月24日
    0
  • 家居建材app开发—建材商城系统开发(家居建材app有哪些)

    互联网技术已经进入我们的生活20多年,深刻影响了我们的日常生活。电子商务产业的发展使我们生活和工作的许多变化。目前,家居建材领域也在向互联网电子商务转型发展。 网上交易的协调能力会…

    科研百科 2023年3月22日
    163
  • 工程项目管理系统应用

    工程项目管理系统应用 随着数字化时代的到来,工程项目管理也变得越来越数字化。工程项目管理系统是一种有效的工具,可以帮助工程项目管理人员更好地管理项目,提高项目的效率和质量。本文将介…

    科研百科 2025年1月18日
    0
  • 科研项目必须立项

    科研项目必须立项 科研项目必须立项是现代社会的一个基本前提。在现代科学的发展中,科研项目是推动科技进步的重要手段,也是国家经济发展的重要组成部分。因此,立项是科研项目开始的第一步,…

    科研百科 2025年2月16日
    2
  • 项目管理漏斗

    项目管理漏斗是一种用于管理项目进度和成本的方法,可以帮助项目经理有效地组织和管理项目。本文将介绍项目管理漏斗的基本概念和用法。 什么是项目管理漏斗? 项目管理漏斗是一种用于管理项目…

    科研百科 6天前
    1
  • 国防科研项目经费管理办法(国防科研项目计价法18号文)

    国防科研项目计价法18号文 近年来,随着国防科技的迅速发展,科研项目的计价工作也变得越来越重要。为了更好地规范科研项目的计价工作,我们制定了《国防科研项目计价法》第18号。 《国防…

    科研百科 2024年8月2日
    57
  • 建设工程合同管理的意义,合同管理在建设工程项目管理中的重要性

    摘 要:合同是签订双方关于权力和义务分配的契约,是各种经济关系相连接的桥梁。合同管理是工程项目管理的基础,合同管理关系着项目的成本、质量、进度等种种问题,合同管理水平关系着工程项目…

    科研百科 2024年1月1日
    180
  • 招投标与合同管理

    招投标与合同管理是建设工程领域的重要环节,对于保证工程的质量、安全、时间和成本等方面都具有重要的意义。本文将从招投标的法律法规、合同管理的流程和技巧等方面进行探讨,旨在为建设工程行…

    科研百科 2024年8月29日
    33