「项目实战」.学生成绩管理系统之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月14日
    3
  • 用活用好有限的财政科技经费

    曹坤华 科学研究具有灵感瞬间性、方式随意性、路径不确定性的特点,这一规律对科研项目管理和经费安排提出了较高要求。习近平总书记在全国科技创新大会上强调,要着力改革和创新科研经费使用和…

    科研百科 2024年4月23日
    115
  • 低代码冠译

    低代码冠译:改变软件开发方式的新趋势 低代码冠译是一种新兴的软件开发方法,它正在改变传统的软件开发方式。随着技术的不断进步,低代码冠译正逐渐成为开发者们的首选。本文将介绍低代码冠译…

    科研百科 2024年2月29日
    180
  • 自动化办公:协同式自动化SaaS云办公体系的探究与实践

    协同式自动化SaaS云办公体系是一种基于云计算和软件即服务(SaaS)的办公工具和平台,旨在提供一种协同、高效、便捷的工作环境,使团队成员能够共享信息、协作工作,并实现自动化的任务…

    科研百科 2023年8月24日
    240
  • 如何实现过渡期平稳转型?年内这些信托公司增资扩股……(信托公司增资扩股流程)

    5月26日,记者注意到,年内已有多家信托公司相继完成增资或披露了增资计划。业内人士分析认为,在行业规模整体下降多年,且现在趋于触底反弹的情况下,信托公司增资更多是为了过渡期平稳转型…

    科研百科 2022年6月23日
    242
  • 健康养老科研项目

    健康养老科研项目: 探索健康养老模式新方向 随着人口老龄化趋势的加剧,健康养老问题越来越受到人们的关注。健康养老科研项目则是探索健康养老模式新方向的重要课题之一。 在健康养老科研项…

    科研百科 2025年2月7日
    1
  • 郴州市城管局:科技赋能城管 智慧引领未来(郴州数字城管)

    “规范、精准、快速、高效”——这是对郴州数字城管工作的高度概括和生动诠释。 2012年3月28日,郴州市数字城管平台正式成立运行,标志着郴州城市管理工作迈入信息化时代。此后,数字城…

    科研百科 2022年8月1日
    360
  • 马军系统集成项目管理工程师

    马军系统集成项目管理工程师 马军是一位出色的系统集成项目管理工程师,他拥有丰富的项目管理经验和专业的技术知识,为客户提供高效的系统集成项目管理服务。 作为一位优秀的系统集成项目管理…

    科研百科 2024年9月24日
    28
  • 院士专家谈科研助理岗位开发:实现就业和科研“双赢”(科研助理教授)

    ◎ 科技日报记者 刘垠 操秀英 编者按 近年,我国将开发科研助理岗位作为促进高校毕业生就业的重要手段,一大批毕业生走进院所、高校、企业,成为科研助理——他们“是科技创新的催化剂”,…

    科研百科 2022年8月6日
    185
  • 项目台帐管理系统

    项目台帐管理系统 项目台帐管理系统是一种用于记录和管理项目进展和成果的工具,能够帮助项目经理和团队成员跟踪项目进度,协调工作,提高效率。 在传统的项目中,项目经理和团队成员通常需要…

    科研百科 2024年12月14日
    1