目录
课题介绍
实现了一个完整的身体健康系统,其中主要有运动推荐模块、用户事务模块、用户分享模块、用户模块、饮食推荐模块、消息提醒模块、用户表模块、token表模块、收藏表模块、身体数据模块、公告信息模块、交流论坛模块、运动推荐评论表模块、用户分享评论表模块、饮食推荐评论表模块、配置文件模块、账户的注册与登录等功能模块。本文详细介绍了该身体健康系统的设计过程,并通过全面测试,完善了预期的功能。研究表明采用B/S架构,通过uniapp框架、以及Mysql数据库可以构建一个完整身体健康系统。最后,整个论文从系统分析、设计、实现以及最后的测试做了一个合理的安排。通过最终的研讨做出一个可行性的方案,在完成以后我们做了详细的介绍并找出系统的不足之处,从而来弥补系统的完善,最终打到符合毕业答辩要求的标准。
配置文件 (自动编号、配置参数值、配置参数名称);
饮食推荐评论表 (自动编号、用户id、关联表id、评论内容、头像、用户名、创建时间、回复内容);
用户分享评论表 (自动编号、头像、回复内容、评论内容、用户id、关联表id、用户名、创建时间);
运动推荐评论表 (自动编号、关联表id、用户id、用户名、评论内容、回复内容、创建时间、头像);
交流论坛 (自动编号、头像、用户名、创建时间、用户id、帖子标题、状态、父节点id、帖子内容);
公告信息 (自动编号、图片、创建时间、标题、内容、简介);
身体数据 (自动编号、日期、信息记录、图片、身高、心率、创建时间、体重、用户名、体脂、姓名);
收藏表 (自动编号、推荐类型、创建时间、备注、类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注)、用户id、图片、表名、商品id、名称);
token表 (自动编号、表名、用户id、过期时间、新增时间、密码、用户名、角色);
用户表 (自动编号、密码、用户名、新增时间、角色);
消息提醒 (自动编号、通知内容、通知日期、手机、用户名、创建时间、姓名、通知标题);
饮食推荐 (自动编号、食物搭配、发布日期、推荐饮食、创建时间、赞、踩、饮食图片、详情内容);
用户 (自动编号、姓名、密码、手机、创建时间、性别、用户名、头像);
用户分享 (自动编号、赞、分享日期、分享标题、踩、分享图片、分享内容、创建时间、分享类型、用户名);
用户事务 (自动编号、事务名称、创建时间、事务内容、登记时间、事务图片、事务类型、用户id);
运动推荐 (自动编号、视频介绍、运动介绍、踩、运动类型、运动强度、项目图片、运动名称、创建时间、运动周期、赞);
本系统的设计与实现共包含16个表:分别是配置文件信息表,饮食推荐评论表信息表,用户分享评论表信息表,运动推荐评论表信息表,交流论坛信息表,公告信息信息表,身体数据信息表,收藏表信息表,token表信息表,用户表信息表,消息提醒信息表,饮食推荐信息表,用户信息表,用户分享信息表,用户事务信息表,运动推荐信息表,
。
具体实现截图
使用技术介绍
开发工具采用VSCode,前端采用Vue+ElementUI,后端采用Node.js,数据库采用MySQL。
小程序端运行软件 微信开发者工具/hbuiderx
数据库:mysql
数据库工具:Navicat/SQLyog都可以
Nodejs+Vue.js+Express -vscode
uni-app框架:使用Vue.js开发跨平台应用的前端框架,编写一套代码,可编译到Android、小程序等平台。
解决的思路
分为前后台分离模式开发,后台管理员管理整个系统的功能,前台用户查询信息,通过功能菜单可以一目了然的清楚系统具有的功能和操作方式,没有复杂的界面设置和流程要求,只要具有计算机基础的操作即可使用本系统,所以。在操作上就有可行性。
采用B/S模式架构系统,开发简单,只需要连接网络即可登录本系统,不需要安装任何客户端。
开发工具和技术简介
微信开发者工具是由腾讯官方专门为微信小程序量身打造的开发者工具,它不仅轻巧、方便,主要是的对于电脑要求不是很高,所以在一般的电脑上都可以完成相应的开发,在系统调试测试过程中,也不要下载第三方插件,就可以完成系统测试环节,通过制定好的debug调试器就可以完成。
HBuilder 是基于HTML、js、css的等H5语法的开发技术,使得开发者很容易上手学习,里面涉及的数据绑定基于Vue语法涉及,在开发效率上也比传统的jquery快,当然HBuilder 也保留了对jquery的支持,两种语法可以结合项目的需要,可以混合开发。
VScode是我们最常用的网页编辑器,通过日常学习,我们基本熟练运用,在完成项目的过程中,我们可以更加节省时间。而且VScode包含很多插件并且免费,下载更加快捷方便,可以给我们提供很多便捷条件。运行的便捷给我提供很大帮助。
Nodejs语言
只有拥有了一款解析器才能使得脚本语言顺利运行,JavaScript语言是一种脚本语言,各种各样的解析器位于系统中的不同部位,Node.js是一个完整的解析器,而且OS允许js来定义多种多样种类繁多的数据结构,从而处理各种运算,还准许js使用系统环境所提供的多种内置对象和方式做各类计算。当处在浏览器运行环境下时,js技术的用途是进行DOM相关的运算,在这个情况下,该环境便提供一个document类别的内置操作对象。而在node.js运行环境下的js的用途是对磁盘文件进行操作或者是对http服务器进行搭建,此时,node.js就相应提供了fs,http等系统内置对象。
vue前端框架
前端方面,采用近几年比较火的Vue前端框架。Vue是一套用于构建用户界面的渐进式前端框架,使用其可以简化前端页面的开发。同时本系统采用前后端分离开发模式,前端只需要专注于页面的开发,以及接收后端传过来的数据,而后端只需要专注于业务的处理,提供获取JSON格式数据的接口。
Express不对node.js已有的特性进行二次抽象,只是在它之上扩展了Web应用所需的功能。丰富的HTTP工具以及来自Connect框架的中间件随取随用,创建强健、友好的API变得快速又简单。Express是Web开发人员最欢迎的Node.js框架之一,提供一系列强大特性帮助创建各种Web应用。
MySQL通过协议分析SQL语句的语法,支持标准的SQL语言实现增删改查,同时,MYSQL提供了丰富的接口,可以和不同的语言进行连接。在使用MySQL时,首先通过create语句创建数据库名称,并指定数据库文件对应的路径地址,然后通过create table来创建数据库表。创建数据库表时要设置数据库表内的字段以及字段类型、字段是否为空、是否主键、是否外键、是否索引字段、类型的长度等等。
错误处理和异常处理
在系统中,设计了一个健壮的错误处理和异常处理策略。系统会捕获可能发生的错误和异常情况,并提供相应的处理和反馈机制。
系统将采用适宜的异常类别来描述各种类型的错误和异常状况,并通过异常处理策略去捕获和应对这些异常。在处理异常时,系统会提供相关的错误数据和日志记录,以协助开发者和管理者进行问题诊断和解决。此外,系统还会向用户提供友好的错误提示,以确保用户能够理解问题并采取适当的行动。
nodejs类核心代码部分展示
import { version } from '../../package.json'
import { Router } from 'express'
import { Op } from 'sequelize'
import toRes from '../lib/toRes'
import UsersModel from '../models/UsersModel'
import jwt from 'jsonwebtoken'
export default ({ config, db }) => {
let api = Router()
// 用户登录接口
api.post('/login', async (req, res) => {
try {
let userinfo = await UsersModel.findOne({ where: { username: req.query.username, password: req.query.password } })
if (userinfo === null) {
toRes.session(res, -1, '用户名或密码错误!')
return;
}
const token = jwt.sign(
{
id: userinfo.dataValues.id,
username: userinfo.dataValues.username,
role: userinfo.dataValues.role
},
config.jwtSecret,
{
expiresIn: 60 * 60 * 24 * 1
}
)
userinfo.dataValues.token = token
delete userinfo.dataValues.password
req.session.userinfo = userinfo
toRes.session(res, 0, '登录成功!', token)
} catch(err) {
toRes.session(res, 500, '服务器错误!', '', 500)
}
})
// 用户退出接口
api.all('/logout', (req, res) => {
if (!toRes.auth(req, res, '管理员')) return
req.session.destroy(err => {
toRes.session(res, 0, '退出成功!')
})
})
// 注册接口
api.post('/register', async (req, res) => {
try {
const userinfo = await UsersModel.create(req.body)
if (userinfo === null) {
toRes.session(res, -1, '注册失败!')
} else {
toRes.session(res, 0, '注册成功!')
}
} catch(err) {
toRes.session(res, 500, '服务器错误!', '', 500)
}
})
源码获取/联系我
标签:uniapp,vue,184bw,res,用户,js,userinfo,模块,id From: https://blog.csdn.net/zhgl322/article/details/143741301文章最下方名片联系我即可~