# 心理预警系统-后端 **Repository Path**: hellowangming/psychological-warning-system-server ## Basic Information - **Project Name**: 心理预警系统-后端 - **Description**: 心理预警系统-后端 技术栈:NodeJS+Express+MySQL+MongoDB+docker - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 5 - **Created**: 2025-07-18 - **Last Updated**: 2025-07-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 心理预警系统 - 后端部分 🧠 [![Node](https://img.shields.io/badge/Node-v20.14.0-brightgreen.svg)](https://nodejs.org/) [![NPM](https://img.shields.io/badge/NPM-v10.7.0-blue.svg)](https://www.npmjs.com/) [![MySQL](https://img.shields.io/badge/MySQL-v5.7-orange.svg)](https://www.mysql.com/) ## 📋 项目介绍 心理预警系统是一个面向高校的学生心理健康管理平台。本项目是该系统的后端部分,基于 Node.js + Express + MySQL 开发,提供完整的 RESTful API 接口。 ### 🎯 核心功能 #### 1. 用户权限管理 - 多角色权限控制(管理员、辅导员、咨询师等) - 基于 JWT 的身份认证 - 细粒度的功能权限配置 #### 2. 学生档案管理 - 学生基本信息维护 - 班级信息管理 - 批量导入导出 - 预警级别管理 #### 3. 心理咨询管理 - 咨询预约记录 - 咨询过程记录 - 咨询师管理 - 问题分类管理 #### 4. 访谈记录管理 - 日常访谈记录 - 普查访谈记录 - 家校沟通记录 - 访谈统计分析 #### 5. 危机干预 - 危机事件记录 - 病例档案管理 - 预警信息处理 - 干预措施跟踪 #### 6. 数据分析 - 心理健康趋势分析 - 咨询数据统计 - 预警信息统计 - 各类记录报表导出 ### 🔧 技术特点 - **安全性**: 采用 JWT 认证、XSS 防护等多重安全措施 - **可扩展**: 模块化设计,便于功能扩展 - **高性能**: 异步处理,优化数据库查询 - **易维护**: 分层架构,代码结构清晰 ### 📦 项目结构 ``` ├── bin/ # 启动脚本 ├── routes/ # 路由控制层 │ ├── users.js # 用户相关路由 │ ├── student.js # 学生相关路由 │ └── ... ├── service/ # 业务逻辑层 │ ├── userService.js # 用户相关服务 │ ├── studentService.js # 学生相关服务 │ └── ... ├── dao/ # 数据访问层 ├── middleware/ # 中间件 ├── util/ # 工具函数 └── public/ # 静态资源 ``` ## 🚀 环境要求 - Node.js: v20.14.0 - NPM: v10.7.0 - MySQL: 5.7 ## 📦 项目部署 ### 1. 克隆项目 ```bash git clone https://gitee.com/wlaoyu/psychological-warning-system-server.git cd psychological-warning-system-server ``` ### 2. Docker 环境(可选) ```bash docker pull node:20-alpine ``` ### 3. 安装依赖 #### 检查并更换 NPM 源 ```bash # 查看当前源 npm config get registry # 切换为国内源 npm config set registry https://registry.npmmirror.com # 安装依赖 npm i ``` > 💡 如果依赖安装失败,可以尝试删除 package-lock.json 后重新执行: ```bash npm install --registry=https://registry.npmmirror.com/ --verbose ``` ### 4. 数据库配置 #### 方案 A: 本地安装 MySQL - Windows: 从 MySQL 官网下载并安装 MySQL Server - Linux: 使用包管理器(apt/yum)安装 MySQL #### 方案 B: Docker 部署 MySQL 1. 拉取镜像 ```bash docker pull mysql:5.7 ``` 1. 创建容器 ```bash docker run -id --name [数据库容器名称] \ -e MYSQL_ROOT_PASSWORD=[数据库root密码] \ -v [本地数据卷存储数据库日志]:/var/log/mysql \ -v [本地数据卷存储数据库数据]:/var/lib/mysql \ -v [本地数据卷存储数据库配置]:/etc/mysql/conf.d \ -p [需要映射的主机端口]:3306 \ mysql:5.7 ``` 1. 修改mysql的配置 ```bash # /etc/mysql/my.cnf [mysqld] max_allowed_packet=50M ``` 1. 创建数据库 ```sql CREATE DATABASE xlyj_db DEFAULT CHARACTER SET 'utf8mb4'; ``` ### 5. 数据初始化 按顺序执行 `/docs/database/data/*.sql` 中的 SQL 文件: 1. /docs/database/table/create.sql 创建基本的数据库表 2. /docs/database/trigger/onAddUser.sql 创建触发器 3. /docs/database/trigger/onBindingUserTypePower.sql 创建触发器 4. /docs/database/view/view.sql 创建视图 5. /docs/database/data/base_data.sql 导入基本数据 ### 6. 对象存储配置 - 拉取 Minio 的镜像 ```bash docker pull minio/minio ``` - 创建 Minio 的容器 ```bash docker run -d -p 9000:9000 -p 9001:9001 --name minio \ -e MINIO_ROOT_USER=[数据库用户名] \ -e MINIO_ROOT_PASSWORD=[数据库密码] \ minio/minio server /data --console-address ":9001" --address ":9000" ``` ### 7. 环境变量配置 配置数据库连接相关的环境变量: ```bash XLYJ_HOST: 127.0.0.1 # 数据库地址 XLYJ_PORT: 3306 # 数据库端口 XLYJ_USER: root # 数据库用户名 XLYJ_PSWD: 123456 # 数据库密码 XLYJ_DB: xlyj_db # 数据库名称 XLYJ_MINIO_ENDPOINT: 127.0.0.1 XLYJ_MINIO_PORT: 9000 XLYJ_MINIO_USESSL: false XLYJ_MINIO_AKEY: AKEY XLYJ_MINIO_SKEY: SKEY ``` ## 🚀 启动项目 ### 方式一: 直接启动 ```bash npm run start ``` ### 方式二: 脚本启动(包含环境变量配置) ```bash cd psychological-warning-system-server; export XLYJ_HOST=127.0.0.1 export XLYJ_PORT=3306 export XLYJ_USER=root export XLYJ_PSWD=123456 export XLYJ_DB=xlyj_db export XLYJ_MINIO_ENDPOINT=127.0.0.1 export XLYJ_MINIO_PORT=9000 export XLYJ_MINIO_USESSL=false export XLYJ_MINIO_AKEY=AKEY export XLYJ_MINIO_SKEY=SKEY npm run start; ```