校园管理系统练习项目源码-前后端分离-【node版】

今天给大家分享一个校园管理系统,前后端分离项目。这是最近在练习前端编程,结合 node 写的一个完整的项目。
使用的技术:
Node.js:版本要求16.20以上。
后端框架:Express框架。
数据库: MySQL 8.0。
Vue2:前端采用Vue2框架,配合Element UI组件库。
实现的功能有:
课程管理
教师管理
学生管理
公告管理
管理员管理
教学楼管理
宿舍管理
年级管理
班级管理
通过这次的编程项目练习,让我更快的掌握了前端编程技术和后端Express框架,还是非常好的。如果你也在学习编程,也可以借鉴一下,仿照这个项目也写一个。
系统截图:
首页:
在这里插入图片描述
教师管理:
在这里插入图片描述
学生管理:
在这里插入图片描述
系统功能就简单的分享一部分,有兴趣的小伙伴可以去看一下完整的源码~ (非开源项目)
https://wwwoop.com/home/Index/projectInfo?goodsId=115&typeParam=1&subKey=-1

在这里插入图片描述
零星代码:

const ClassModel = require('../models/class.model')
const GradeModel = require('../models/grade.model')
const Response = require('../utils/response')
const AppError = require('../utils/appError')
const asyncHandler = require('../utils/asyncHandler')/*** 班级控制器类*/
class ClassController {/*** 获取所有班级*/getAll = asyncHandler(async (req, res) => {const { page, pageSize } = req.queryconst result = await ClassModel.getAll(page, pageSize)res.json(Response.success(result))})/*** 获取单个班级*/getOne = asyncHandler(async (req, res) => {const classInfo = await ClassModel.findById(req.params.id)if (!classInfo) {return res.json(Response.error('班级不存在'))}res.json(Response.success(classInfo))})/*** 创建班级*/create = asyncHandler(async (req, res) => {try {// 验证年级是否存在if (req.body.grade_id) {const grade = await GradeModel.findById(req.body.grade_id)if (!grade) {return res.json(Response.error('所选年级不存在'))}}const classId = await ClassModel.create(req.body)const classInfo = await ClassModel.findById(classId)res.json(Response.success(classInfo, '创建成功'))} catch (error) {res.json(Response.error(error.message))}})/*** 更新班级*/update = asyncHandler(async (req, res) => {try {// 验证年级是否存在if (req.body.grade_id) {const grade = await GradeModel.findById(req.body.grade_id)if (!grade) {return res.json(Response.error('所选年级不存在'))}}await ClassModel.update(req.params.id, req.body)const classInfo = await ClassModel.findById(req.params.id)res.json(Response.success(classInfo, '更新成功'))} catch (error) {res.json(Response.error(error.message))}})/*** 删除班级*/delete = asyncHandler(async (req, res) => {try {await ClassModel.delete(req.params.id)res.json(Response.success(null, '删除成功'))} catch (error) {res.json(Response.error(error.message))}})/*** 获取所有年级(用于下拉选择)*/getAllGrades = asyncHandler(async (req, res) => {try {const result = await GradeModel.getAll()res.json(Response.success(result.list))} catch (error) {res.json(Response.error(error.message))}})
}module.exports = new ClassController()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/96754.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/96754.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【项目】 :C++ - 仿mudou库one thread one loop式并发服务器实现(模块划分)

【项目】 :C - 仿mudou库one thread one loop式并发服务器实现一、HTTP 服务器与 Reactor 模型1.1、HTTP 服务器概念实现步骤难点1.2、Reactor 模型概念分类1. 单 Reactor 单线程2. 单 Reactor 多线程3. 多 Reactor 多线程目标定位总结二、功能模块划分2.1、SERVER …

浴室柜市占率第一,九牧重构数智卫浴新生态

作者 | 曾响铃文 | 响铃说2025年上半年,家居市场在政策的推动下展现出独特的发展态势。国家出台的一系列鼓励家居消费的政策,如“以旧换新”国补政策带动超6000万件厨卫产品焕新,以及我国超2.7亿套房龄超20年的住宅进入改造周期,都…

源码分析之Leaflet中TileLayer

概述 TileLayer 是 Layer 的子类,继承自GridLayer基类,用于加载和显示瓦片地图。它提供了加载和显示瓦片地图的功能,支持自定义瓦片的 URL 格式和参数。 源码分析 源码实现 TileLayer的源码实现如下: export var TileLayer GridL…

php学习(第二天)

一.网站基本概念-服务器 1.什么是服务器? 1.1定义 服务器(server),也称伺服器,是提供计算服务的设备。 供计算服务的设备” 这里的“设备”不仅指物理机器(如一台配有 CPU、内存、硬盘的计算机),也可以指…

C++(友元和运算符重载)

目录 友元: 友元函数: 示例: 友元类: 示例: 优点: 注意事项: 运算符重载: 注意: 示例: 友元: C中如果想要外部函数或者类对一个类的pr…

和平精英风格射击游戏开发指南

本教程将完整讲解如何开发一款和平精英风格的HTML射击游戏,涵盖核心设计理念、代码架构与关键实现细节。 核心设计架构 游戏机制系统 角色控制系统:通过键盘实现玩家移动战斗系统:子弹发射与碰撞检测道具系统:武器、弹药和医疗包收…

21.1 《24GB显存搞定LLaMA2-7B指令微调:QLoRA+Flash Attention2.0全流程实战》

24GB显存搞定LLaMA2-7B指令微调:QLoRA+Flash Attention2.0全流程实战 实战 LLaMA2-7B 指令微调 一、指令微调技术背景 指令微调(Instruction Tuning)是大模型训练中的关键技术突破点。与传统全量微调(Full Fine-Tuning)相比,指令微调通过特定格式的指令-响应数据训练,…

周志华《机器学习导论》第10章 降维与度量学习

https://www.lamda.nju.edu.cn/aml24fall/slides/Chap10.pptx 目录 1.MDS (Multiple Dimensional Scaling) 多维缩放方法 2. 主成分分析 (Principal Component Analysis, PCA) 2.1 凸优化证明 2.2 人脸识别降维应用 3. 核化PCA 4. 流行学习 4.1 LLE 局部线性嵌入&#…

Kubernetes 弹性伸缩:深入讲解 HPA 和 VPA

1. 介绍 Kubernetes 提供了多种资源管理方式,其中 弹性伸缩(Auto-scaling)是最重要的特性之一。弹性伸缩可以根据应用的负载变化自动调整 Pod 的数量和资源,以确保在高负载下应用能够正常运行,而在低负载时节省资源。在…

大数据毕业设计选题推荐-基于大数据的家庭能源消耗数据分析与可视化系统-Hadoop-Spark-数据可视化-BigData

✨作者主页:IT毕设梦工厂✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、PHP、.NET、Node.js、GO、微信小程序、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇…

【Spring】原理解析:Spring Boot 自动配置的核心机制与实战剖析

一、引言在当今的 Java 开发领域,Spring Boot 凭借其快速搭建项目、简化配置等优势,成为了众多开发者的首选框架。而 Spring Boot 自动配置作为其核心特性之一,极大地提升了开发效率,让开发者能够更专注于业务逻辑的实现。本文将深…

Java forEach中不能用i++的原因以及代替方案

因为在 Lambda 表达式内部访问的外部局部变量必须是 final 或 effectively final(事实最终变量),而 i 操作试图改变这个变量的值,违反了这一规定。下面我们来详细拆解这个问题,让你彻底明白。1. 一个具体的例子我们先看…

第十四届蓝桥杯青少组C++选拔赛[2023.1.15]第二部分编程题(2 、寻宝石)

参考程序&#xff1a;#include <bits/stdc.h> using namespace std;int main() {int N;cin >> N; // 读入盒子数vector<int> a(N);for (int i 0; i < N; i) cin >> a[i]; // 读入每个盒子的宝石数// N > 3&#xff08;题目保证&#x…

9120 部 TMDb 高分电影数据集 | 7 列全维度指标 (评分 / 热度 / 剧情)+API 权威源 | 电影趋势分析 / 推荐系统 / NLP 建模用

一、引言在影视行业分析与数据科学实践中&#xff0c;高分电影数据的深度挖掘已成为平台优化内容推荐、制片方研判市场趋势、影迷发现优质作品的核心支撑 —— 通过上映年份与评分的关联可捕捉电影质量演变、依托热度与投票数能定位爆款潜质、结合剧情概述可开展情感与主题分析…

Tomcat PUT方法任意写文件漏洞学习

1 PUT请求 PUT请求是一种在HTTP协议中常见的请求方法 1.1 基本原理 PUT请求是一种用于向指定资源位置上传新的实体数据的请求方法&#xff0c;与其他请求方法的区别在于&#xff0c;PUT请求用于创建或者更新只当资源位置的实体数据。它与GET请求不同&#xff0c;PUT请求会替换掉…

【C++基础】初识模板——一起步入泛型编程的大门

引言在 C 世界里&#xff0c;模板&#xff08;Template&#xff09;就像一把万能钥匙。它允许你编写通用的代码&#xff0c;让编译器在需要的时候为具体类型生成对应的函数或类。换句话说&#xff0c;模板是 C 泛型编程&#xff08;Generic Programming&#xff09; 的基石。 如…

项目管理框架如何影响团队协作

在项目执行过程中&#xff0c;项目管理框架不仅是一套工具和流程&#xff0c;更是团队协作方式的基础。不同的项目管理框架会深刻影响团队沟通效率、任务分配、决策方式和整体协同效果。 传统框架通常强调层级与计划&#xff0c;带来高度规范化的协作&#xff1b;敏捷框架则强调…

正向代理,反向代理,负载均衡还有nginx

这是一个非常核心且重要的后端/运维知识领域。我会用尽可能清晰易懂的方式&#xff0c;结合生动的比喻&#xff0c;为你详细梳理这些概念。核心概念一览我们先从一个宏观的角度来理解它们之间的关系&#xff1a;代理&#xff08;Proxy&#xff09;&#xff1a; 一个中间人的角色…

WebSocket压缩传输优化:机器视觉高清流在DCS中的低延迟方案

引言在现代工业自动化领域&#xff0c;分布式控制系统&#xff08;DCS&#xff09;正面临着前所未有的数据挑战。随着机器视觉技术的广泛应用&#xff0c;高清视频流已成为监控产品质量、检测设备异常和保障生产安全的重要手段。然而&#xff0c;将720P、1080P甚至4K分辨率的高…

《Linux常见命令》

ls 功能&#xff1a;列出目录下的子目录与文件&#xff0c;对于文件&#xff0c;还会列出文件名及其他信息。 语法&#xff1a;ls [选项] [目录或文件] 1.常用选项及说明选项说明-a列出目录下的所有文件&#xff0c;包括以 . 开头的隐含文件-d将目录象文件一样显示&#xff0c;…