校园管理系统练习项目源码-前后端分离-【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()